Knight Dialer LeetCode solution in JavaScript

1
var knightDialer = function (n) {
2
let dp = Array(10).fill(1);
3
let MOD = 10 ** 9 + 7;
4

5
for (let i = 2; i <= n; i++) {
6
oldDp = [...dp];
7
dp[0] = (oldDp[4] + oldDp[6]) % MOD;
8
dp[1] = (oldDp[8] + oldDp[6]) % MOD;
9
dp[2] = (oldDp[9] + oldDp[7]) % MOD;
10
dp[3] = (oldDp[8] + oldDp[4]) % MOD;
11
dp[4] = (oldDp[3] + oldDp[9] + oldDp[0]) % MOD;
12
dp[5] = 0;
13
dp[6] = (oldDp[0] + oldDp[7] + oldDp[1]) % MOD;
14
dp[7] = (oldDp[6] + oldDp[2]) % MOD;
15
dp[8] = (oldDp[3] + oldDp[1]) % MOD;
16
dp[9] = (oldDp[4] + oldDp[2]) % MOD;
17
}
18

19
return dp.reduce((ans, ele) => (ans += ele), 0) % MOD;
20
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0