【剑指 Offer 】14- II. 剪绳子 II

    科技2022-07-17  115

    题目:14- II. 剪绳子 II

    参考14-I.剪绳子I 在此基础上,每累积3之后,要取模。

    分析: 当绳子长度大于4时,尽可能多的分成长度为3的小段,这样乘积是最大的。(数学证明自行查找)

    思路:

    n小于4时,返回n-1;n等于4时,返回4;n大于4时,就要切割成长度为3的小段,只要n还大于4,每切除一段3,就累乘起来,然后取模。

    代码:

    class Solution { public int cuttingRope(int n) { if(n < 4){ return n - 1; }else if(n == 4){ return n; } long res = 1; while(n > 4){ res *= 3; res %= 1000000007; n -= 3; } return (int) (res*n%1000000007); } }
    Processed: 0.008, SQL: 8