贪心算法:绳子分割

剪绳子

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

贪心算法
每次分割都达到最优解
例如:长度为n的绳子
分割一刀,结果为:
n/2*(n/2+n%2);
当n<=4时停止,没有在分割的必要;
代码:
class Solution {
public:

int cutRope1(int number)
{
    if(number<=4)
    {
        return number;
    }
    return cutRope1(number/2)*cutRope1(number/2+number%2);

}
int cutRope(int number) {
    if(number==1)
    {
        return 0;
    }
    if(number==2)
    {
        return 1;
    }
    if(number==3)
    {
        return 2;
    }
    return cutRope1(number);

}

};

全部评论
有问题,绳子长为8时,被分为4x4=16,而不是最优解3*3*2=19
点赞 回复 分享
发布于 2020-06-27 12:01

相关推荐

评论
1
收藏
分享

创作者周榜

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