@@ -5,10 +5,8 @@ class Solution {
55val dirs= intArrayOf(0 ,1 ,0 ,- 1 ,0 )
66val dp= Array (m) {Array (n) {LongArray (maxMove+ 1 ) {- 1L } } }
77
8- fun outOfBounds (i : Int ,j : Int )= i< 0 || i== m|| j< 0 || j== n
9-
108fun 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
1210if (k== 0 )return 0L
1311if (dp[i][j][k]!= - 1L )return dp[i][j][k]
1412
@@ -30,15 +28,13 @@ class Solution {
3028val dirs= intArrayOf(0 ,1 ,0 ,- 1 ,0 )
3129val dp= Array (m) {Array (n) {LongArray (maxMove+ 1 ) } }
3230
33- fun outOfBounds (i : Int ,j : Int )= i< 0 || i== m|| j< 0 || j== n
34-
3531for (kin 1 .. maxMove) {
3632for (iin 0 until m) {
3733for (jin 0 until n) {
3834for (dirin 0 .. 3 ) {
3935val i2= i+ dirs[dir]
4036val j2= j+ dirs[dir+ 1 ]
41- if (outOfBounds(i2, j2) )
37+ if (i2 < 0 || i2 == m || j2 < 0 || j2 == n )
4238 dp[i][j][k]++
4339else
4440 dp[i][j][k]= (dp[i][j][k]+ dp[i2][j2][k- 1 ])% mod
@@ -58,15 +54,13 @@ class Solution {
5854val dirs= intArrayOf(0 ,1 ,0 ,- 1 ,0 )
5955val dp= Array (m) {Array (n) {LongArray (maxMove+ 1 ) } }
6056
61- fun outOfBounds (i : Int ,j : Int )= i< 0 || i== m|| j< 0 || j== n
62-
6357for (kin 1 .. maxMove) {
6458for (iin m- 1 downTo0 ) {
6559for (jin n- 1 downTo0 ) {
6660for (dirin 0 .. 3 ) {
6761val i2= i+ dirs[dir]
6862val j2= j+ dirs[dir+ 1 ]
69- if (outOfBounds(i2, j2) )
63+ if (i2 < 0 || i2 == m || j2 < 0 || j2 == n )
7064 dp[i][j][k]++
7165else
7266 dp[i][j][k]= (dp[i][j][k]+ dp[i2][j2][k- 1 ])% mod