343.整数拆分

刷题刷题找工作!

题目链接

DP入门之整数拆分!

题目:

给定一个正整数 n ,将其拆分为 k正整数 的和( k >= 2 ),并使这些整数的乘积最大化。

返回 你可以获得的最大乘积

自己的思路

。。。完全不会做

官方题解

复制代码
class Solution {
public:
    int integerBreak(int n) {
        vector<int> dp(n + 1);
        dp[2] = 1;
        for (int i = 3; i <= n ; i++) {
            for (int j = 1; j < i - 1; j++) {
                dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j));
            }
        }
        return dp[n];
    }
};

为什么是两层for循环,因为每一个dp[i]都要慢慢拆成几个数,你可以理解一下,已经算到i了,所以后面的什么dp[j],dp[i-j]都已经获得了,就是在求最大值了,为什么会需要取dp[i]max一下,毕竟有的那么多的循环啊,要取一个和为最大的才能当作它的最终结果,好了理解了。

再问,为什么j<i-1,因为i-j的差距至少为2,dp[0]和dp[1]是无意义的。

再问,为什么拆分更好分成这两个?因为dp[i-j]的拆分数量是一定大于2个的,所以要把只拆分一个,即不拆分的单独提出来(之前写得,现在看不懂这句话了)

注意,max只有两个参数,写成这样三个会报错?是的,所以它是写成两个max来找最大

相关推荐
mnasd6 小时前
python常用模块
大数据
步里软件6 小时前
2611.某音 MCN 运营效率提升指南:从手动重复到自动化全流程
大数据·自动化·抖音关注·抖音评论
Agent手记10 小时前
制造业生产流程自动化,Agent需要具备哪些能力?深度拆解2026工业级智能体落地范式与核心架构
大数据·人工智能·ai·架构·自动化
硅基流动10 小时前
光谷爱计算 × 硅基流动:AI 算力联合运营,共建高效“Token 工厂”
大数据·人工智能
xinshu52711 小时前
企业工商和司法风险:从定义到AI识别的完整指南
大数据·人工智能·技术分享
anew___11 小时前
国产AI大模型巅峰对决:2026年5月主流模型深度横评
大数据·人工智能
财经资讯数据_灵砚智能11 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月26日
大数据·人工智能·python·信息可视化·自然语言处理·ai编程·灵砚智能
Bechamz11 小时前
大数据开发学习Day42
大数据·学习
计算机安禾12 小时前
【算法分析与设计】第10篇:下界理论与NP完全性初步
大数据·人工智能·算法
电商API_1800790524712 小时前
京东API对接|实现批量自动化获取京东商品价格更新商品库
大数据·运维·数据挖掘·自动化·网络爬虫