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

相关推荐
mmWave&THz12 分钟前
传统微波IDU与数字IP微波ODU扩展单元(数字微波IDU)技术对比分析
大数据·运维·网络·tcp/ip·系统架构·信息与通信·智能硬件
互联网科技看点17 分钟前
领航中国·墨韵华章——李送文
大数据
RoboWizard23 分钟前
移动固态硬盘摔了一下后无法识别,数据还能恢复吗?
大数据·人工智能·数码相机·智能手机·性能优化·无人机
熬夜的咕噜猫32 分钟前
GlusterFS 分布式文件系统
大数据
一个程序猿老马1 小时前
003、Git核心概念:仓库、工作区、暂存区、版本库
大数据·git·elasticsearch
智星云算力1 小时前
算力民主化的 “临界点”:RTX 5090 专属算力平台专项测评与租用实战分析
大数据·人工智能·gpu算力·智星云·gpu租用
我是发哥哈1 小时前
主流AI培训机构能力横向评测:核心维度与选型要点解析
大数据·人工智能·学习·机器学习·ai·chatgpt·aigc
QYR-分析1 小时前
电气化浪潮下,电池液体冷却器行业发展全景解析
大数据·人工智能
一个程序猿老马1 小时前
005、Git三板斧(1):git add - 将文件纳入版本管理
大数据·git·elasticsearch
Guheyunyi1 小时前
智能巡检管理系统实现安全与效率双飞跃
大数据·人工智能·安全·架构·能源