Knight Dialer LeetCode solution in Java

1
class Solution {
2
public int knightDialer(int n) {
3
var dp = new long[10];
4
var tmp = new long[10];
5
Arrays.fill(dp, 1);
6
for (int i = 1; i < n; i++) {
7
tmp[1] = dp[6] + dp[8];
8
tmp[2] = dp[7] + dp[9];
9
tmp[3] = dp[4] + dp[8];
10
tmp[4] = dp[0] + dp[3] + dp[9];
11
tmp[5] = 0;
12
tmp[6] = dp[0] + dp[1] + dp[7];
13
tmp[7] = dp[2] + dp[6];
14
tmp[8] = dp[1] + dp[3];
15
tmp[9] = dp[2] + dp[4];
16
tmp[0] = dp[4] + dp[6];
17
for (int j = 0; j < 10; j++) tmp[j] = tmp[j] % 1000000007;
18
var arr = dp;
19
dp = tmp;
20
tmp = arr;
21
}
22
long res = 0;
23
for (int i = 0; i < 10; i++) {
24
res = (res + dp[i]) % 1000000007;
25
}
26
return (int) res;
27
}
28
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0