From 5c95c8a95a3e086445cbe04ae8aeee8ddee88513 Mon Sep 17 00:00:00 2001 From: iam-abhishek-yadav Date: Mon, 27 Nov 2023 20:08:36 +0530 Subject: [PATCH 1/6] feat: add ts solution to lc problem: No.935 --- .../0900-0999/0935.Knight Dialer/README.md | 39 +++++++++++++++++++ .../0900-0999/0935.Knight Dialer/README_EN.md | 39 +++++++++++++++++++ .../0900-0999/0935.Knight Dialer/solution.ts | 34 ++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 solution/0900-0999/0935.Knight Dialer/solution.ts diff --git a/solution/0900-0999/0935.Knight Dialer/README.md b/solution/0900-0999/0935.Knight Dialer/README.md index 80585feab7454..f28ee6e1a98ec 100644 --- a/solution/0900-0999/0935.Knight Dialer/README.md +++ b/solution/0900-0999/0935.Knight Dialer/README.md @@ -224,6 +224,45 @@ public class Solution { } ``` +### **TypeScript** + +```ts +function knightDialer(n: number): number { + const MOD: number = 1e9 + 7; + + if (n === 1) { + return 10; + } + + let f: number[] = new Array(10).fill(1); + + while (--n > 0) { + let t: number[] = new Array(10).fill(0); + + t[0] = f[4] + f[6]; + t[1] = f[6] + f[8]; + t[2] = f[7] + f[9]; + t[3] = f[4] + f[8]; + t[4] = f[0] + f[3] + f[9]; + t[6] = f[0] + f[1] + f[7]; + t[7] = f[2] + f[6]; + t[8] = f[1] + f[3]; + t[9] = f[2] + f[4]; + + for (let i = 0; i < 10; ++i) { + f[i] = t[i] % MOD; + } + } + + let ans: number = 0; + for (let v of f) { + ans = (ans + v) % MOD; + } + + return ans; +} +``` + ### **...** ``` diff --git a/solution/0900-0999/0935.Knight Dialer/README_EN.md b/solution/0900-0999/0935.Knight Dialer/README_EN.md index a7c94eaabe008..db502d3f31bc8 100644 --- a/solution/0900-0999/0935.Knight Dialer/README_EN.md +++ b/solution/0900-0999/0935.Knight Dialer/README_EN.md @@ -205,6 +205,45 @@ public class Solution { } ``` +### **TypeScript** + +```ts +function knightDialer(n: number): number { + const MOD: number = 1e9 + 7; + + if (n === 1) { + return 10; + } + + let f: number[] = new Array(10).fill(1); + + while (--n > 0) { + let t: number[] = new Array(10).fill(0); + + t[0] = f[4] + f[6]; + t[1] = f[6] + f[8]; + t[2] = f[7] + f[9]; + t[3] = f[4] + f[8]; + t[4] = f[0] + f[3] + f[9]; + t[6] = f[0] + f[1] + f[7]; + t[7] = f[2] + f[6]; + t[8] = f[1] + f[3]; + t[9] = f[2] + f[4]; + + for (let i = 0; i < 10; ++i) { + f[i] = t[i] % MOD; + } + } + + let ans: number = 0; + for (let v of f) { + ans = (ans + v) % MOD; + } + + return ans; +} +``` + ### **...** ``` diff --git a/solution/0900-0999/0935.Knight Dialer/solution.ts b/solution/0900-0999/0935.Knight Dialer/solution.ts new file mode 100644 index 0000000000000..415f0d81b04d6 --- /dev/null +++ b/solution/0900-0999/0935.Knight Dialer/solution.ts @@ -0,0 +1,34 @@ +function knightDialer(n: number): number { + const MOD: number = 1e9 + 7; + + if (n === 1) { + return 10; + } + + let f: number[] = new Array(10).fill(1); + + while (--n > 0) { + let t: number[] = new Array(10).fill(0); + + t[0] = f[4] + f[6]; + t[1] = f[6] + f[8]; + t[2] = f[7] + f[9]; + t[3] = f[4] + f[8]; + t[4] = f[0] + f[3] + f[9]; + t[6] = f[0] + f[1] + f[7]; + t[7] = f[2] + f[6]; + t[8] = f[1] + f[3]; + t[9] = f[2] + f[4]; + + for (let i = 0; i < 10; ++i) { + f[i] = t[i] % MOD; + } + } + + let ans: number = 0; + for (let v of f) { + ans = (ans + v) % MOD; + } + + return ans; +} \ No newline at end of file From bee00087a92e58fc5777ee91ee83ddbdb6a48e84 Mon Sep 17 00:00:00 2001 From: iam-abhishek-yadav Date: Mon, 27 Nov 2023 14:41:42 +0000 Subject: [PATCH 2/6] style: format code and docs with prettier --- .../0900-0999/0935.Knight Dialer/solution.ts | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/solution/0900-0999/0935.Knight Dialer/solution.ts b/solution/0900-0999/0935.Knight Dialer/solution.ts index 415f0d81b04d6..73057dbd21d48 100644 --- a/solution/0900-0999/0935.Knight Dialer/solution.ts +++ b/solution/0900-0999/0935.Knight Dialer/solution.ts @@ -1,34 +1,34 @@ -function knightDialer(n: number): number { - const MOD: number = 1e9 + 7; - - if (n === 1) { - return 10; - } - - let f: number[] = new Array(10).fill(1); - - while (--n > 0) { - let t: number[] = new Array(10).fill(0); - - t[0] = f[4] + f[6]; - t[1] = f[6] + f[8]; - t[2] = f[7] + f[9]; - t[3] = f[4] + f[8]; - t[4] = f[0] + f[3] + f[9]; - t[6] = f[0] + f[1] + f[7]; - t[7] = f[2] + f[6]; - t[8] = f[1] + f[3]; - t[9] = f[2] + f[4]; - - for (let i = 0; i < 10; ++i) { - f[i] = t[i] % MOD; - } - } - - let ans: number = 0; - for (let v of f) { - ans = (ans + v) % MOD; - } - - return ans; -} \ No newline at end of file +function knightDialer(n: number): number { + const MOD: number = 1e9 + 7; + + if (n === 1) { + return 10; + } + + let f: number[] = new Array(10).fill(1); + + while (--n > 0) { + let t: number[] = new Array(10).fill(0); + + t[0] = f[4] + f[6]; + t[1] = f[6] + f[8]; + t[2] = f[7] + f[9]; + t[3] = f[4] + f[8]; + t[4] = f[0] + f[3] + f[9]; + t[6] = f[0] + f[1] + f[7]; + t[7] = f[2] + f[6]; + t[8] = f[1] + f[3]; + t[9] = f[2] + f[4]; + + for (let i = 0; i < 10; ++i) { + f[i] = t[i] % MOD; + } + } + + let ans: number = 0; + for (let v of f) { + ans = (ans + v) % MOD; + } + + return ans; +} From c397d0f9e33ab3b4b6cf6fa7a7651eae30fdc45b Mon Sep 17 00:00:00 2001 From: Abhishek Yadav <150127962+iam-abhishek-yadav@users.noreply.github.com> Date: Mon, 27 Nov 2023 20:27:29 +0530 Subject: [PATCH 3/6] Update README.md --- solution/0900-0999/0935.Knight Dialer/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solution/0900-0999/0935.Knight Dialer/README.md b/solution/0900-0999/0935.Knight Dialer/README.md index f28ee6e1a98ec..fe659f82668ea 100644 --- a/solution/0900-0999/0935.Knight Dialer/README.md +++ b/solution/0900-0999/0935.Knight Dialer/README.md @@ -234,10 +234,10 @@ function knightDialer(n: number): number { return 10; } - let f: number[] = new Array(10).fill(1); + const f: number[] = new Array(10).fill(1); while (--n > 0) { - let t: number[] = new Array(10).fill(0); + const t: number[] = new Array(10).fill(0); t[0] = f[4] + f[6]; t[1] = f[6] + f[8]; @@ -255,7 +255,7 @@ function knightDialer(n: number): number { } let ans: number = 0; - for (let v of f) { + for (const v of f) { ans = (ans + v) % MOD; } From 12ad019e6d8d6290896b76f63f863958a93801f6 Mon Sep 17 00:00:00 2001 From: Abhishek Yadav <150127962+iam-abhishek-yadav@users.noreply.github.com> Date: Mon, 27 Nov 2023 20:27:46 +0530 Subject: [PATCH 4/6] Update README_EN.md --- solution/0900-0999/0935.Knight Dialer/README_EN.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solution/0900-0999/0935.Knight Dialer/README_EN.md b/solution/0900-0999/0935.Knight Dialer/README_EN.md index db502d3f31bc8..de7b48665e3ea 100644 --- a/solution/0900-0999/0935.Knight Dialer/README_EN.md +++ b/solution/0900-0999/0935.Knight Dialer/README_EN.md @@ -215,10 +215,10 @@ function knightDialer(n: number): number { return 10; } - let f: number[] = new Array(10).fill(1); + const f: number[] = new Array(10).fill(1); while (--n > 0) { - let t: number[] = new Array(10).fill(0); + const t: number[] = new Array(10).fill(0); t[0] = f[4] + f[6]; t[1] = f[6] + f[8]; @@ -236,7 +236,7 @@ function knightDialer(n: number): number { } let ans: number = 0; - for (let v of f) { + for (const v of f) { ans = (ans + v) % MOD; } From 30eb1ed5767653337cb4a2710376e0ccd37b86c0 Mon Sep 17 00:00:00 2001 From: Abhishek Yadav <150127962+iam-abhishek-yadav@users.noreply.github.com> Date: Mon, 27 Nov 2023 20:28:01 +0530 Subject: [PATCH 5/6] Update solution.ts --- solution/0900-0999/0935.Knight Dialer/solution.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/solution/0900-0999/0935.Knight Dialer/solution.ts b/solution/0900-0999/0935.Knight Dialer/solution.ts index 415f0d81b04d6..19b10045ef40b 100644 --- a/solution/0900-0999/0935.Knight Dialer/solution.ts +++ b/solution/0900-0999/0935.Knight Dialer/solution.ts @@ -5,10 +5,10 @@ function knightDialer(n: number): number { return 10; } - let f: number[] = new Array(10).fill(1); + const f: number[] = new Array(10).fill(1); while (--n > 0) { - let t: number[] = new Array(10).fill(0); + const t: number[] = new Array(10).fill(0); t[0] = f[4] + f[6]; t[1] = f[6] + f[8]; @@ -26,9 +26,9 @@ function knightDialer(n: number): number { } let ans: number = 0; - for (let v of f) { + for (const v of f) { ans = (ans + v) % MOD; } return ans; -} \ No newline at end of file +} From 8a55e2d487eb0d66310ee2e7cd35c79a4f05966f Mon Sep 17 00:00:00 2001 From: iam-abhishek-yadav Date: Mon, 27 Nov 2023 15:01:04 +0000 Subject: [PATCH 6/6] style: format code and docs with prettier --- .../0900-0999/0935.Knight Dialer/solution.ts | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/solution/0900-0999/0935.Knight Dialer/solution.ts b/solution/0900-0999/0935.Knight Dialer/solution.ts index bb9970a5d32f4..e262e04661c56 100644 --- a/solution/0900-0999/0935.Knight Dialer/solution.ts +++ b/solution/0900-0999/0935.Knight Dialer/solution.ts @@ -1,34 +1,34 @@ -function knightDialer(n: number): number { - const MOD: number = 1e9 + 7; - - if (n === 1) { - return 10; - } - - const f: number[] = new Array(10).fill(1); - - while (--n > 0) { - const t: number[] = new Array(10).fill(0); - - t[0] = f[4] + f[6]; - t[1] = f[6] + f[8]; - t[2] = f[7] + f[9]; - t[3] = f[4] + f[8]; - t[4] = f[0] + f[3] + f[9]; - t[6] = f[0] + f[1] + f[7]; - t[7] = f[2] + f[6]; - t[8] = f[1] + f[3]; - t[9] = f[2] + f[4]; - - for (let i = 0; i < 10; ++i) { - f[i] = t[i] % MOD; - } - } - - let ans: number = 0; - for (const v of f) { - ans = (ans + v) % MOD; - } - - return ans; -} \ No newline at end of file +function knightDialer(n: number): number { + const MOD: number = 1e9 + 7; + + if (n === 1) { + return 10; + } + + const f: number[] = new Array(10).fill(1); + + while (--n > 0) { + const t: number[] = new Array(10).fill(0); + + t[0] = f[4] + f[6]; + t[1] = f[6] + f[8]; + t[2] = f[7] + f[9]; + t[3] = f[4] + f[8]; + t[4] = f[0] + f[3] + f[9]; + t[6] = f[0] + f[1] + f[7]; + t[7] = f[2] + f[6]; + t[8] = f[1] + f[3]; + t[9] = f[2] + f[4]; + + for (let i = 0; i < 10; ++i) { + f[i] = t[i] % MOD; + } + } + + let ans: number = 0; + for (const v of f) { + ans = (ans + v) % MOD; + } + + return ans; +}