解题思路,找出最优解的规律
当target等于1,2,3的时候,结果是固定的
当target大于3的时候,可以看以下数据
target=4, 最优解:2 2
target=5, 最优解:3 2
target=6, 最优解:3 3
target=7, 最优解:3 2 2
target=8, 最优解:3 3 2
target=9, 最优解:3 3 3
target=10,最优解:3 3 2 2
target=11,最优解:3 3 3 2
target=12,最优解:3 3 3 3
target=13,最优解:3 3 3 2 2
target=14,最优解:3 3 3 3 2
target=15,最优解:3 3 3 3 3
所以不难发现3和2的个数规律
public int cutRope(int target) {
if (target<=1) {
return 0;
}
if (target == 2) {
return 1;
}
if (target == 3) {
return 2;
}
int Length = target%3 == 0?target/3:target/3+1;
int Length2 = target%3 == 0?0:3-target%3;
int result = 1;
for (int i = 0;i<Length;i++) {
result = result*(i<Length-Length2?3:2);
}
return result;
}