题解 | #剪绳子#

剪绳子

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

14行O(nLog(n))代码。

class Solution {
public:
    int cutRope(int number) {
        int ans = 0;
        for(int m = 2;m<=number/2;m++){
            int step = number/m;
            //总共m段绳子
            int llen = number - m*step;
            int now = pow(step, m-llen)*pow(step+1, llen);
            ans = now>ans?now:ans;
        }
        return ans;
    }
};

根据基本不等式,在和一定的情况下想要乘积最大最优的办法就是将这些数均分。 所以假设均分情况下算出短绳子和长绳子分别多少段然后相乘即可。

全部评论

相关推荐

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