BiruLyu
7/8/2017 - 5:54 PM

343. Integer Break(1st).java

public class Solution {
    public int integerBreak(int n) {
        int[] dp = new int[n + 1];
        dp[1] = 1;
        for (int i = 2; i <= n; i++) {
            for (int j = 1; j < i; j++) {
                dp[i] = Math.max(dp[i], Math.max(dp[i - j], i - j) * Math.max(dp[j], j));
            }
        }
        return dp[n];
    }
}
public class Solution {
    public int integerBreak(int n) {
        if(n == 2) return 1; 
        if(n == 3) return 2;
        int product = 1;
        while(n>4){
            product *= 3;
            n -= 3;
        }
        product *= n;
        return product;
    }
}