题目
https://leetcode-cn.com/problems/jian-sheng-zi-ii-lcof/
思路
1.数学方法(未做)
2.把之前的动态规划 用BigInteger来替换
代码
import java.math.BigInteger;
class Solution {
public int cuttingRope(int length) {
if(length<2){
return 0;
}
if(length==2){
return 1;
}
if(length==3){
return 2;
}
BigInteger[] product = new BigInteger[length+1];
product[0] = new BigInteger("1");
product[1] = new BigInteger("1");
product[2] = new BigInteger("2");
product[3] = new BigInteger("3");
BigInteger max = new BigInteger("0");
for (int i = 4; i <= length; i++) {
max = new BigInteger("0");
for (int j = 1; j <= i / 2; j++) {
BigInteger temp = product[j].multiply(product[i-j]);
if(max.compareTo(temp)<0){
max = temp;
}
product[i] = max;
}
}
return product[length].mod(new BigInteger("1000000007")).intValue();
}
}