leetcode-剑指 Offer 14- II. 剪绳子 II

import java.math.BigInteger;
class Solution {
    //dp(n) 长度为n的绳子剪成多段的最大乘积
    public BigInteger[] cache;
    public int cuttingRope(int n) {
        //init
        cache=new BigInteger[n+1];
        Arrays.fill(cache,BigInteger.valueOf(0));
        //res
        BigInteger res = dp(n);
        return res.mod(BigInteger.valueOf(1000000007)).intValue();
    }

    private BigInteger dp(int n) {
        if(n==2)
            return BigInteger.valueOf(1);
        if(cache[n].compareTo(BigInteger.valueOf(0))>0)
            return cache[n];
        for(int i=1;i

你可能感兴趣的:(leetcode-剑指 Offer 14- II. 剪绳子 II)