题解 | #剪绳子#

剪绳子

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

#include <vector>
class Solution {
public:
    // int max(vector<int> &dp,int l)
    // {
    //     int max = 0;

    //     for(int i = 1;i <= l/2;i++)
    //         max = max > (dp[i] * dp[l-i]) ? max : (dp[i] * dp[l-i]);

    //     return max;
    // }

    int cutRope(int number) {
        if(number <= 1)
            return 0;
        if(number < 4)
            return number - 1;

        vector<int> dp(60,0);
        dp[0] = 0;
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 3;

        int m;
        for(int i = 4;i <= number;i++)
        {
            m = 0;
            for(int j = 1;j <= i/2;j++)
                m = max(m,dp[j] * dp[i-j]);

            dp[i] = m;
        }

            //dp[i] = max(dp,i);

        return dp[number];
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务