用动态规划
public class Solution {
public int cutRope(int target) {
if(target<2){
return 0;
}
if(target==2){
return 1;
}
if(target==3){
return 2;
}
int[] dp = new int[target+1];
int max = -1;
dp[0]=0;
dp[1]=1;
dp[2]=2;
dp[3]=3;
for(int i=4;i<=target;i++){
for(int j=1;j<=i/2;j++){
int val = dp[j]*dp[i-j];
max = max>val?max:val;
dp[i]=max;
}
}
max=dp[target];
return max;
}
}