贪心
* 思想:当n大于4时,尽可能多的剪出长度为3的段,3就是最优的,
* 当 n 被剪到小于4时,就不用再减,因为小于4时剪还不如不剪
* 如果给的n直接就小于4,没办法,特殊值,特殊处理,不剪也得剪
public int cuttingRope(int n) {
if (n == 2) return 1;
if (n == 3) return 2;
if (n == 4) return 4;
int res = 1;
while (n > 4){
res = res * 3;
n = n - 3;
}
return res * n;
}

该博客介绍了贪心算法在解决绳子剪断问题中的应用,当给定绳子长度n时,如何通过尽可能剪出长度为3的段来最大化乘积。算法首先处理特殊值n=2,3,4,然后对于n>4的情况,循环剪切直至n小于4,最后返回结果。
418

被折叠的 条评论
为什么被折叠?



