跳到主要内容

343.整数拆分

链接:343.整数拆分
难度:Medium
标签:数学、动态规划
简介:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。

题解 1 - typescript

  • 编辑时间:2020-07-30
  • 执行用时:84ms
  • 内存消耗:37.4MB
  • 编程语言:typescript
  • 解法介绍:dp[i]=i 的最大值。
function integerBreak(n: number): number {
const dp = new Array(n + 1).fill(0);
for (let i = 2; i <= n; i++) {
let max = 0;
for (let j = 1; j <= i - 1; j++) {
max = Math.max(max, j * Math.max(i - j, dp[i - j]));
}
dp[i] = max;
}
return dp[n];
}