public int maxCut(int length){
if (length < 2){
return 0;
}
if (length == 2){
return 1;
}
if (length == 3){
return 2;
}
int[] memo = new int[length + 1];
//前四个存储的是绳子的本来长度,不切割
memo[0] = 0;
memo[1] = 1;
memo[2] = 2;
memo[3] = 3;
int max;
for (int i = 4; i <= length; i++) {
max = 0;
for (int j = 1; j <= i/2; j++) {
int temp = memo[j] * memo[i - j];
if (max < temp){
max = temp;
}
memo[i] = max;
}
}
max = memo[length];
return max;
}
14 剪绳子
最新推荐文章于 2025-06-04 21:42:26 发布
本文介绍了一个关于绳子切割的经典动态规划问题。给定一根长度为n的绳子,通过切割并重新组合使其乘积最大。文章提供了一段Java代码实现,通过动态规划算法来解决该问题。
137

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



