14. 剪绳子

https://www.nowcoder.com/practice/57d85990ba5b440ab888fc72b0751bf8?tpId=13&tqId=33257&tab=answerKey&from=cyc_github

class Solution {
public:
    int cutRope(int number) {
        if(number == 2){
            return 2;
        }
        if(number == 3){
            return 3;
        }
       vector<int> dp;
       dp.resize(number+1, -1);
       for(int i=2;i<=3;++i){
           dp[i] = i;
       }
       for(int i=4;i<=number;++i){
           for(int k=2;k<=i/2;++k){
               dp[i] = max(dp[i], k*dp[i-k]);
           }
       }
       return dp[number];
    }
};
posted @ 2021-03-29 19:24  rxh1999  阅读(50)  评论(0编辑  收藏  举报