0
点赞
收藏
分享

微信扫一扫

剑指 Offer 14- I. 剪绳子

思路:简单dp,dp【n】=dp[i-j]*dp[j]的最大值,注意dp[n]的初始不能是n因为它必须分一块

class Solution {
    vector<long long> dp=vector<long long> (60,0);
public:
    int cuttingRope(int n) {
        for(int i=1;i<=n;i++){
            if(i!=n) dp[i]=i;
            for(int j=1;j<i;j++){
                dp[i]=max(dp[i],dp[i-j]*dp[j]);
            }
        }
        return dp[n];
    }

};
举报

相关推荐

0 条评论