思路1:很明显这是提个贪心算法求解问题,贪心算法就是要将问题分为几步,每一步都去寻找它的最优解。知道不满足最优解条件为止。此题比较简单通过分析,先将绳子每段分为3,一次一次的去分,如果出现剩余长度为4的绳子那么就将4分成连段长度为2的绳子。因为2*2 > 1 * 3;出现剩余程度为2时划分结束。
public class Solution {
public int cutRope(int target) {
int mu3 = 1;
if(target < 2)
return 0;
if(target == 2)
return 1;
if(target == 3)
return 2;
int countof3 = 0;
while(target > 4){
countof3++;
target -= 3;
}
for(int i = 0; i < countof3; i++)
mu3 = mu3 * 3;
return target * mu3;
}
}