栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode 343. 整数拆分*

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode 343. 整数拆分*

具体思路:

总觉得不拆分不太对,这里存疑;

剪绳子的翻版,以前见过,就感觉这么熟悉;

具体代码: 1.数学:
class Solution {
public:
    int integerBreak(int n) {
        if(n<=3)
            return n-1;
        int cnt=n/3;
        n=n%3;
        if(n==0){
            return pow(3,cnt);
        }
        if(n==1){
            cnt--;
            return pow(3,cnt)*4;
        }
        if(n==2){
            return pow(3,cnt)*2;
        }
        return cnt;
    }
};
2.DP:
class Solution {
public:
    int integerBreak(int n) {
        vector  dp(n + 1);
        for (int i = 2; i <= n; i++) {
            int curMax = 0;
            for (int j = 1; j < i; j++) {
                curMax = max(curMax, max(j * (i - j), j * dp[i - j]));
            }
            dp[i] = curMax;
        }
        return dp[n];
    }
};

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/889936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号