剑指 Offer 14- I. 剪绳子

题目链接

题目思路:呃,这是一种数学规律,让数字拆分成尽可能多的3相乘,如果剩下的数字<=4需要另做考虑,这点很容易得出,这样拆分的数字相乘的结果就是最大的。

代码

    public int cuttingRope(int n) {
        
        int []dp = {0, 1, 1, 2, 4};
        if (n <= 4) {
            return dp[n];
        }
        
        int number = 1;
        while (n > 0) {
            if (n > 4) {
                number *= 3;
                n -= 3;
            } else {
                number *= n;
                n = 0;
            }
        }
        
        return number;
    }
posted @ 2020-09-26 14:48  Bears9  阅读(75)  评论(0编辑  收藏  举报