题解 | #剪绳子#

剪绳子

https://www.nowcoder.com/practice/57d85990ba5b440ab888fc72b0751bf8

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    int cutRope(int n) {
        // write code here
        if(n<=3){
            return n-1;//2分为1 1 3分为 1 2
        }
        vector<int>dp(n+1);
        dp[1]=1;
        dp[2]=2;
        dp[3]=3;//2 和3此时的值是不剪绳子的最大值 用于后面进行计算 符合题意的结果已经在上面返回了
        dp[4]=4;
        for(int i=5;i<=n;++i){
            for(int j=1;j<i;++j){
                dp[i]=max(dp[i],j*dp[i-j]);
            }
        }
        return dp[n];
    }
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务