Skip to main content

650.js

/** ------------------------------------------------------------------------------
*
* 650. 2 Keys Keyboard
* Topics: DP
* https://leetcode.com/problems/2-keys-keyboard/description/
*
------------------------------------------------------------------------------ */
/**
* @param {number} n
* @return {number}
*/
var minSteps = function (n) {
if (n === 1) return 0

const dp = Array(n + 1).fill(0)
for (let i = 2; i <= n; i++) {
dp[i] = i
for (let j = 1; j < i; j++) {
if (i % j === 0) {
dp[i] = Math.min(dp[i], dp[j] + i / j)
}
}
}

return dp[n]
}

console.log(minSteps(3))