diff --git a/solution/0600-0699/0650.2 Keys Keyboard/README.md b/solution/0600-0699/0650.2 Keys Keyboard/README.md index ba78770327fee..d51b7380a9ad7 100644 --- a/solution/0600-0699/0650.2 Keys Keyboard/README.md +++ b/solution/0600-0699/0650.2 Keys Keyboard/README.md @@ -277,6 +277,48 @@ func minSteps(n int) int { } ``` +#### TypeScript + +```ts +function minSteps(n: number): number { + const dp = Array(n + 1).fill(1000); + dp[1] = 0; + + for (let i = 2; i <= n; i++) { + for (let j = 1, half = i / 2; j <= half; j++) { + if (i % j === 0) { + dp[i] = Math.min(dp[i], dp[j] + i / j); + } + } + } + + return dp[n]; +} +``` + +#### JavaScript + +```js +/** + * @param {number} n + * @return {number} + */ +var minSteps = function (n) { + const dp = Array(n + 1).fill(1000); + dp[1] = 0; + + for (let i = 2; i <= n; i++) { + for (let j = 1, half = i / 2; j <= half; j++) { + if (i % j === 0) { + dp[i] = Math.min(dp[i], dp[j] + i / j); + } + } + } + + return dp[n]; +}; +``` + diff --git a/solution/0600-0699/0650.2 Keys Keyboard/README_EN.md b/solution/0600-0699/0650.2 Keys Keyboard/README_EN.md index e7bb4600ebb1f..6d2c02c659b91 100644 --- a/solution/0600-0699/0650.2 Keys Keyboard/README_EN.md +++ b/solution/0600-0699/0650.2 Keys Keyboard/README_EN.md @@ -256,6 +256,48 @@ func minSteps(n int) int { } ``` +#### TypeScript + +```ts +function minSteps(n: number): number { + const dp = Array(n + 1).fill(1000); + dp[1] = 0; + + for (let i = 2; i <= n; i++) { + for (let j = 1, half = i / 2; j <= half; j++) { + if (i % j === 0) { + dp[i] = Math.min(dp[i], dp[j] + i / j); + } + } + } + + return dp[n]; +} +``` + +#### JavaScript + +```js +/** + * @param {number} n + * @return {number} + */ +var minSteps = function (n) { + const dp = Array(n + 1).fill(1000); + dp[1] = 0; + + for (let i = 2; i <= n; i++) { + for (let j = 1, half = i / 2; j <= half; j++) { + if (i % j === 0) { + dp[i] = Math.min(dp[i], dp[j] + i / j); + } + } + } + + return dp[n]; +}; +``` + diff --git a/solution/0600-0699/0650.2 Keys Keyboard/Solution2.js b/solution/0600-0699/0650.2 Keys Keyboard/Solution2.js new file mode 100644 index 0000000000000..45a43bd55defb --- /dev/null +++ b/solution/0600-0699/0650.2 Keys Keyboard/Solution2.js @@ -0,0 +1,18 @@ +/** + * @param {number} n + * @return {number} + */ +var minSteps = function (n) { + const dp = Array(n + 1).fill(1000); + dp[1] = 0; + + for (let i = 2; i <= n; i++) { + for (let j = 1, half = i / 2; j <= half; j++) { + if (i % j === 0) { + dp[i] = Math.min(dp[i], dp[j] + i / j); + } + } + } + + return dp[n]; +}; diff --git a/solution/0600-0699/0650.2 Keys Keyboard/Solution2.ts b/solution/0600-0699/0650.2 Keys Keyboard/Solution2.ts new file mode 100644 index 0000000000000..457c19dd1ea29 --- /dev/null +++ b/solution/0600-0699/0650.2 Keys Keyboard/Solution2.ts @@ -0,0 +1,14 @@ +function minSteps(n: number): number { + const dp = Array(n + 1).fill(1000); + dp[1] = 0; + + for (let i = 2; i <= n; i++) { + for (let j = 1, half = i / 2; j <= half; j++) { + if (i % j === 0) { + dp[i] = Math.min(dp[i], dp[j] + i / j); + } + } + } + + return dp[n]; +}