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来找最大

相关推荐
YangYang9YangYan2 分钟前
数据科学与大数据技术专业学习数据分析的价值
大数据·学习·数据分析
元拓数智34 分钟前
NL2SQL落地后的“隐形陷阱”:如何破解数据变更引发的查询失效难题
大数据·ai·自然语言处理·nl2sql
专注API从业者38 分钟前
告别手动翻页!基于淘宝商品接口 + Open Claw 实现自动化选品与实时监控(附完整 Python 代码)
大数据·运维·数据库·自动化
云中计算巫作坤1 小时前
多平台电商订单,手工同步的时代该结束了
大数据·系统集成·s-hub·s-hub电商平台对接
阿坤带你走近大数据1 小时前
Flink中背压的详细介绍
大数据·flink
暗夜猎手-大魔王1 小时前
hermes源码学习5-Provider 运行时解析
大数据·人工智能·学习
五度易链-区域产业数字化管理平台1 小时前
从编制规范到落地应用,新版可研报告撰写全流程指南
大数据·人工智能
lauo1 小时前
ibbot手机青春版:AI时代真正的生产力革命——从联想小新Air 13看智能设备的分水岭
大数据·人工智能·智能手机
器灵科技1 小时前
DeepSeek V4 Pro宣称:超GPT-5.5+永久降价75%
大数据·人工智能·gpt·阿里云·ai·语言模型
yyoc972 小时前
本地 Flink on K8s + Iceberg + MinIO 实时数仓平台 — AI部署指南与踩坑实录
大数据·ai·flink·kubernetes·iceberg