@@ -5,10 +5,8 @@ class Solution {
5
5
val dirs= intArrayOf(0 ,1 ,0 ,- 1 ,0 )
6
6
val dp= Array (m) {Array (n) {LongArray (maxMove+ 1 ) {- 1L } } }
7
7
8
- fun outOfBounds (i : Int ,j : Int )= i< 0 || i== m|| j< 0 || j== n
9
-
10
8
fun dfs (i : Int ,j : Int ,k : Int ):Long {
11
- if (outOfBounds(i, j) )return 1L
9
+ if (i < 0 || i == m || j < 0 || j == n )return 1L
12
10
if (k== 0 )return 0L
13
11
if (dp[i][j][k]!= - 1L )return dp[i][j][k]
14
12
@@ -30,15 +28,13 @@ class Solution {
30
28
val dirs= intArrayOf(0 ,1 ,0 ,- 1 ,0 )
31
29
val dp= Array (m) {Array (n) {LongArray (maxMove+ 1 ) } }
32
30
33
- fun outOfBounds (i : Int ,j : Int )= i< 0 || i== m|| j< 0 || j== n
34
-
35
31
for (kin 1 .. maxMove) {
36
32
for (iin 0 until m) {
37
33
for (jin 0 until n) {
38
34
for (dirin 0 .. 3 ) {
39
35
val i2= i+ dirs[dir]
40
36
val j2= j+ dirs[dir+ 1 ]
41
- if (outOfBounds(i2, j2) )
37
+ if (i2 < 0 || i2 == m || j2 < 0 || j2 == n )
42
38
dp[i][j][k]++
43
39
else
44
40
dp[i][j][k]= (dp[i][j][k]+ dp[i2][j2][k- 1 ])% mod
@@ -58,15 +54,13 @@ class Solution {
58
54
val dirs= intArrayOf(0 ,1 ,0 ,- 1 ,0 )
59
55
val dp= Array (m) {Array (n) {LongArray (maxMove+ 1 ) } }
60
56
61
- fun outOfBounds (i : Int ,j : Int )= i< 0 || i== m|| j< 0 || j== n
62
-
63
57
for (kin 1 .. maxMove) {
64
58
for (iin m- 1 downTo0 ) {
65
59
for (jin n- 1 downTo0 ) {
66
60
for (dirin 0 .. 3 ) {
67
61
val i2= i+ dirs[dir]
68
62
val j2= j+ dirs[dir+ 1 ]
69
- if (outOfBounds(i2, j2) )
63
+ if (i2 < 0 || i2 == m || j2 < 0 || j2 == n )
70
64
dp[i][j][k]++
71
65
else
72
66
dp[i][j][k]= (dp[i][j][k]+ dp[i2][j2][k- 1 ])% mod