Leetcode 343. 整数拆分 动态规划

原题链接:Leetcode 343. 整数拆分

cpp 复制代码
class Solution {
public:
    int integerBreak(int n) {
        if(n==2) return 1;
        int res=0;
        // dp[i]表示i拆分后可以获得的最大乘积
        vector<int> dp(n+1,0);
        dp[2]=1;
        for(int i=3;i<=n;i++){
            for(int j=1;j<=i/2;j++){
                // 将 i 拆分成 j 和 i−j 的和,且 i−j 不再拆分成多个正整数,此时的乘积是 j×(i−j)
                // 将 i 拆分成 j 和 i−j 的和,且 i−j 继续拆分成多个正整数,此时的乘积是 j×dp[i−j]
                dp[i]=max(dp[i],max((i-j)*j , dp[i-j]*j));
            }
        }
        return dp[n];
    }
};
相关推荐
机器学习之心18 分钟前
198种组合算法+优化BiGRU双向门控循环单元+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备!
深度学习·算法·shap分析·新数据预测·优化bigru
小胖xiaopangss1 小时前
栈的压入弹出序列--牛客
数据结构·c++·算法
_给我学起来1 小时前
前缀和数组
算法
程序员莫小特1 小时前
老题新解|求三角形面积
开发语言·数据结构·c++·算法·信息学奥赛一本通
mc23561 小时前
C语言指针详解
c语言·开发语言·算法
Asmalin1 小时前
【代码随想录day 30】 力扣 763. 划分字母区间
算法·leetcode·职场和发展
小欣加油1 小时前
leetcode 526 优美的排列
c++·算法·leetcode·职场和发展·深度优先·剪枝
代码充电宝2 小时前
LeetCode 算法题【简单】49. 字母异位词分组
java·算法·leetcode·面试·哈希算法
搂鱼1145143 小时前
(二分、思维)洛谷 P4090 USACO17DEC Greedy Gift Takers P 题解
算法
YSRM3 小时前
Leetcode+Java+图论+岛屿问题
java·算法·leetcode·图论