题目是:给定⼀个正整数 n,将其拆分为⾄少两个正整数的和,并使这些整数的乘积最⼤化。 返回你可以获得的最⼤乘积。
let n = 10
let dp = new Array(n + 1).fill(0)
dp[2] = 1
dp[3] = 2
for (let i = 4; i <= n; i++) {
for (let j = 2; j < i; j++) {
dp[i] = Math.max(dp[i], Math.max((i - j) * j, dp[i - j] * j));
}
}
console.log(dp);
let n = 10
let dp = new Array(n + 1).fill(0)
dp[2] = 1
for (let i = 3; i <= n; i++) {
for (let j = 2; j < i; j++) {
dp[i] = Math.max(dp[i], Math.max((i - j) * j, dp[i - j] * j));
}
}
console.log(dp);
第二种是扰乱了dp[i]的定义 我觉得不可取,怎么能有dp[1]???