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

相关推荐
Databend1 小时前
2KB histogram 背后:Databend 如何低成本追踪长尾延迟
大数据·数据分析·agent
Databend3 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
阿里云大数据AI技术1 天前
StarRocks x Fluss x Paimon湖流一体方案:构建秒级响应、湖流一体的实时数据引擎
大数据·人工智能
Databend1 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
喵个咪1 天前
Go Wind UBA 拆解系列 - 架构总览:三服务、数据流与契约优先
大数据·后端·go
喵个咪1 天前
Go Wind UBA 拆解系列 - 多租户与安全:两套隔离机制的边界
大数据·后端·go
喵个咪1 天前
Go Wind UBA 拆解系列 - OLAP 与 SQL 硬核:25 个分析模型怎么落地
大数据·后端·go
喵个咪1 天前
Go Wind UBA 拆解系列 - SDK 与采集层:从浏览器到 Kafka
大数据·后端·go
QCC产品中心1 天前
MiniMax Agent 接入实测:企业查询、股权穿透与 UBO 识别(附 Prompt 模板)
大数据·mcp·金融/非金融
SelectDB2 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python