343. 整数拆分

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

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


输入: n = 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。

我的解法


class Solution {
public:
    int integerBreak(int n){
        int dp[59];
        dp[0] = 0;
        dp[1] = 1;
        dp[2] = 1;
        dp[3] = 2;
        dp[4] = 4;
        for(int i = 5; i <= n; i++){
            if(i % 3 == 1){
                dp[i] = dp[i-1]*4/3;
            }
            else{
                dp[i] = dp[i-1]*3/2;
            }
        }
        return dp[n];

    }
};
posted @   xiazichengxi  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
主题色彩