import java.util.ArrayList;
public class Solution {
public int cutRope(int target) {
if(target==2){
return 1;
}
if(target==3){
return 2;
}
if(target==4){
return 4;
}
//动态规划
ArrayList<Integer> list = new ArrayList(){{
add(0);
add(1);
add(2);
add(3);
add(4);
}};
for(int j=5; j<=target; j++){
int max = 0;
for(int i=2; i<=j/2; i++){
if(list.get(i)*list.get(target-i)>max){
max = list.get(i)*list.get(target-i);
}
}
list.add(max);
}
return list.get(target);
/*
//递归
for(int i=2; i<=target/2; i++){
int max1 = 0;
int max2 = 0;
if(i<=4){
max1 = i;
}else{
max1 = cutRope(i);
}
if(target-i<=4){
max2 = target-i;
}else{
max2 = cutRope(target-i);
}
if(max1 * max2 > max ){
max = max1 * max2;
}
}
return max;
*/
}
}