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循环,因为每一个dpi都要慢慢拆成几个数,你可以理解一下,已经算到i了,所以后面的什么dpj,dpi-j都已经获得了,就是在求最大值了,为什么会需要取dpimax一下,毕竟有的那么多的循环啊,要取一个和为最大的才能当作它的最终结果,好了理解了。

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

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

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

相关推荐
2301_780356706 分钟前
【技术解码】全视通“物联数据中台”如何打通医养结合全链路?
大数据·人工智能·物联网
Keystone_Onion9 分钟前
中大件海外仓路由优化:基于5大仓群联动的美国海外仓尾程降本方案
大数据
中科同志科技先进封装22 分钟前
芯片打样与封装中试:赋能高校科研与初创公司跨越“从设计到样品”鸿沟
大数据·其他
laboratory agent开发26 分钟前
企业智能体上线后效果难以衡量:评估体系怎么搭
大数据·人工智能
千桐科技1 小时前
开源共建数字水利生态:千桐科技智慧水利项目正式上线 Gitee,诚邀开发者参与共建!
大数据·开源·数据治理·开源项目·数字水利
数字孪生视频孪生1 小时前
异构架构赋能三维实时重构 核工危化跨境追踪一屏统揽
大数据·人工智能·重构·空间计算
cspttty1 小时前
人力资源管理专业考什么证
大数据·人工智能
m0_749492221 小时前
2026 年广东精邦软件科技有限公司 LIMS 深度测评|从选型痛点看实验室数字化如何避开
大数据·人工智能·科技
xindoo1 小时前
聊一聊商业产品背后的定价逻辑
大数据
SaaS发言人2 小时前
渠道数字化解决方案横评:谁更懂快消
java·大数据·人工智能