贪婪算法,需要数学功底。
动态规划的思路,从下至上解决问题。
class Solution {
public int cuttingRope(int n) {
if(n == 2) return 1;
if(n == 3) return 2;
int[] max = new int[n+1];//建立最优解
max[1] = 1;
max[2] = 2;
max[3] = 3;
max[4] = 4;
for(int i = 5; i<=n ; i++){
int tmpMax = 1;
for(int j = 1; j <= i/2; j++){
tmpMax = Math.max(tmpMax, max[j]*max[i-j]);
}
max[i] = tmpMax;
}
return max[n];
}
}