Loading

剑指Offer14-II.剪绳子

题目链接:剪绳子

思路:由于n的范围变大了,无法使用动态规划,因为动态规划需要比较大小,而含有取模运算的数值是没法比较大小的。所以,参考题解。当n大于4时,尽量多地取3,当n小于4时,绳子就不进行分割了,因为怎么分绳子都不如自身乘进去来得大。

代码:

class Solution {
    public int cuttingRope(int n) {
        if(n <= 3) return n-1;
        if(n == 4) return 4;
        long res = 1;
        while(n > 4){
            res = (res * 3) % 1000000007;
            n -= 3;
        }
        return (int)(n * res % 1000000007);
    }
}
posted @ 2020-12-30 22:35  yoyuLiu  阅读(58)  评论(0编辑  收藏  举报