leetcode 343. 整数拆分

2023.8.10

本题用dp算法来做,dp[i]代表的含义是:当前数字i 在拆分之后所能获得的最大乘积 。然后由于n>=2,所以dp[0]和dp[1]没有意义,不用初始化,直接初始化dp[2]= 1。 然后再遍历给dp数组赋值:dp[i]的来源有两个:①将i拆成 j 和 (i - j) ,然后相乘,即j*(i-j) 。 ② 将i 拆成 j 和(i-j), 然后(i-j)的最大拆分乘积为dp[i-j],即j * dp[i-j]

思考画的草图:

代码如下:

cpp 复制代码
class Solution {
public:
    int integerBreak(int n) {
        vector<int> dp(n+1); //dp[i]的含义是:当前数字i拆分之后的最大乘积值。
        dp[2] = 1; //初始化
        //遍历赋值
        for(int i=3; i<=n; i++)
        {
            for(int j=1; j<=i/2; j++)
            {
                dp[i] = max(dp[i] , max(j*(i-j),j*dp[i-j]));
            }
        }
        return dp[n];
    }
};
相关推荐
洛水水几秒前
【力扣100题】42.杨辉三角
算法·leetcode·职场和发展
東隅已逝,桑榆非晚5 分钟前
深⼊理解指针(3)
c语言·数据结构·笔记·算法·排序算法
云小逸6 分钟前
【Codex 使用教程:从项目规则、Skills、Rules 到 Hooks】
c++·人工智能·ai·codex
li星野7 分钟前
二叉树十题通关:从层序遍历到序列化(Python + C++)
开发语言·c++·python·学习
地平线开发者8 分钟前
地平线 征程 6 工具链进阶教程 征程 6E/M 工具链 QAT 精度调优
算法·自动驾驶
王老师青少年编程9 分钟前
csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:最大回文数
c++·字符串·csp·高频考点·信奥赛·回文字符串·最大回文数
邪修king1 小时前
UE5 进阶篇第一弹:中期架构升级 —— 组件化开发与 Gameplay 框架实战
c++·游戏·架构·ue5
小O的算法实验室2 小时前
2025年IEEE TETCI,异构无人机取送货问题中的转运优化,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
chao1898449 小时前
基于 SPEA2 的多目标优化算法 MATLAB 实现
开发语言·算法·matlab
沪漂阿龙9 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机