Skip to content

Commit 8cbb2a6

Browse files
committed
add 935 ts solution
1 parent 35ff1c6 commit 8cbb2a6

File tree

1 file changed

+40
-0
lines changed
  • Problems/26-Knight-Dialer

1 file changed

+40
-0
lines changed

Problems/26-Knight-Dialer/935.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
function knightDialer(n: number): number {
2+
let dp: number[][] = new Array(4).fill(new Array(3));
3+
const M = 1000000007;
4+
dp = [
5+
[1, 1, 1],
6+
[1, 1, 1],
7+
[1, 1, 1],
8+
[0, 1, 0],
9+
];
10+
11+
for (let i = 1; i < n; i++) {
12+
let newDp: number[][];
13+
newDp = [
14+
[
15+
(dp[2][1] + dp[1][2]) % M,
16+
(dp[2][0] + dp[2][2]) % M,
17+
(dp[1][0] + dp[2][1]) % M,
18+
],
19+
[
20+
(dp[0][2] + dp[2][2] + dp[3][1]) % M,
21+
0,
22+
(dp[0][0] + dp[2][0] + dp[3][1]) % M,
23+
],
24+
[
25+
(dp[0][1] + dp[1][2]) % M,
26+
(dp[0][0] + dp[0][2]) % M,
27+
(dp[1][0] + dp[0][1]) % M,
28+
],
29+
[0, (dp[1][0] + dp[1][2]) % M, 0],
30+
];
31+
dp = newDp;
32+
}
33+
let res = 0;
34+
for (let i = 0; i < 4; i++) {
35+
for (let j = 0; j < 3; j++) {
36+
res += dp[i][j];
37+
}
38+
}
39+
return res % 1000000007;
40+
}

0 commit comments

Comments
 (0)