Skip to content

Commit ef9966b

Browse files
feat: add ts solution to lc problem: No.935 (#2025)
* feat: add ts solution to lc problem: No.935 * style: format code and docs with prettier * Update README.md * Update README_EN.md * Update solution.ts * style: format code and docs with prettier --------- Co-authored-by: iam-abhishek-yadav <abhishekyadav.recs@gmail.com> Co-authored-by: iam-abhishek-yadav <iam-abhishek-yadav@users.noreply.github.com>
1 parent 1fc76a7 commit ef9966b

File tree

3 files changed

+112
-0
lines changed

3 files changed

+112
-0
lines changed

solution/0900-0999/0935.Knight Dialer/README.md

+39
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,45 @@ public class Solution {
224224
}
225225
```
226226

227+
### **TypeScript**
228+
229+
```ts
230+
function knightDialer(n: number): number {
231+
const MOD: number = 1e9 + 7;
232+
233+
if (n === 1) {
234+
return 10;
235+
}
236+
237+
const f: number[] = new Array(10).fill(1);
238+
239+
while (--n > 0) {
240+
const t: number[] = new Array(10).fill(0);
241+
242+
t[0] = f[4] + f[6];
243+
t[1] = f[6] + f[8];
244+
t[2] = f[7] + f[9];
245+
t[3] = f[4] + f[8];
246+
t[4] = f[0] + f[3] + f[9];
247+
t[6] = f[0] + f[1] + f[7];
248+
t[7] = f[2] + f[6];
249+
t[8] = f[1] + f[3];
250+
t[9] = f[2] + f[4];
251+
252+
for (let i = 0; i < 10; ++i) {
253+
f[i] = t[i] % MOD;
254+
}
255+
}
256+
257+
let ans: number = 0;
258+
for (const v of f) {
259+
ans = (ans + v) % MOD;
260+
}
261+
262+
return ans;
263+
}
264+
```
265+
227266
### **...**
228267

229268
```

solution/0900-0999/0935.Knight Dialer/README_EN.md

+39
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,45 @@ public class Solution {
205205
}
206206
```
207207

208+
### **TypeScript**
209+
210+
```ts
211+
function knightDialer(n: number): number {
212+
const MOD: number = 1e9 + 7;
213+
214+
if (n === 1) {
215+
return 10;
216+
}
217+
218+
const f: number[] = new Array(10).fill(1);
219+
220+
while (--n > 0) {
221+
const t: number[] = new Array(10).fill(0);
222+
223+
t[0] = f[4] + f[6];
224+
t[1] = f[6] + f[8];
225+
t[2] = f[7] + f[9];
226+
t[3] = f[4] + f[8];
227+
t[4] = f[0] + f[3] + f[9];
228+
t[6] = f[0] + f[1] + f[7];
229+
t[7] = f[2] + f[6];
230+
t[8] = f[1] + f[3];
231+
t[9] = f[2] + f[4];
232+
233+
for (let i = 0; i < 10; ++i) {
234+
f[i] = t[i] % MOD;
235+
}
236+
}
237+
238+
let ans: number = 0;
239+
for (const v of f) {
240+
ans = (ans + v) % MOD;
241+
}
242+
243+
return ans;
244+
}
245+
```
246+
208247
### **...**
209248

210249
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
function knightDialer(n: number): number {
2+
const MOD: number = 1e9 + 7;
3+
4+
if (n === 1) {
5+
return 10;
6+
}
7+
8+
const f: number[] = new Array(10).fill(1);
9+
10+
while (--n > 0) {
11+
const t: number[] = new Array(10).fill(0);
12+
13+
t[0] = f[4] + f[6];
14+
t[1] = f[6] + f[8];
15+
t[2] = f[7] + f[9];
16+
t[3] = f[4] + f[8];
17+
t[4] = f[0] + f[3] + f[9];
18+
t[6] = f[0] + f[1] + f[7];
19+
t[7] = f[2] + f[6];
20+
t[8] = f[1] + f[3];
21+
t[9] = f[2] + f[4];
22+
23+
for (let i = 0; i < 10; ++i) {
24+
f[i] = t[i] % MOD;
25+
}
26+
}
27+
28+
let ans: number = 0;
29+
for (const v of f) {
30+
ans = (ans + v) % MOD;
31+
}
32+
33+
return ans;
34+
}

0 commit comments

Comments
 (0)