@@ -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 (k in 1 .. maxMove) {
36
32
for (i in 0 until m) {
37
33
for (j in 0 until n) {
38
34
for (dir in 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 (k in 1 .. maxMove) {
64
58
for (i in m - 1 downTo 0 ) {
65
59
for (j in n - 1 downTo 0 ) {
66
60
for (dir in 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
0 commit comments