首页 > 其他 > 详细

剪绳子-推公式,DP,贪婪

时间:2019-11-08 00:41:17      阅读:96      评论:0      收藏:0      [点我收藏+]

 

技术分享图片

 

 这道题答案是B。可以推出来公式:

对于第n次折叠,段数为:2^n + 1

 

 

 

 技术分享图片

 

 

 

剪绳子

 技术分享图片

 

 

 DP:

class Solution {
public:
    int cutRope(int number) {
        if(number<2) return 0;
        else if(number==2) return 1;
        else if(number==3) return 2;
        
        int f[number+1];  //把长度为i的绳子剪成若干段后各段长度乘积的最大值
        memset(f, 0, sizeof f);
        f[0] = 0;
        f[1] = 1;
        f[2] = 2;
        f[3] = 3;
        
        for(int i=4; i<=number; i++){
            for(int j=1; j<=i/2; j++){
                f[i] = max(f[i], f[j]*f[i-j]);
            }
        }
        return f[number];
    }
};

 

剪绳子-推公式,DP,贪婪

原文:https://www.cnblogs.com/Bella2017/p/11816958.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!