8.5 第一次做,无法 AC,大数越界!这题有点难!这题先不做!跳过!
题目描述
原题链接:https://leetcode-cn.com/problems/jian-sheng-zi-ii-lcof/
解题思路
K 神题解:https://leetcode-cn.com/problems/jian-sheng-zi-ii-lcof/solution/
class Solution {public int cuttingRope(int n) {if(n <= 3) return n - 1;int b = n % 3, p = 1000000007;long ret = 1;int lineNums = n / 3; //线段被我们分成以3为大小的小线段个数for(int i = 1; i < lineNums; i++) //从第一段线段开始验算,3 的 ret 次方是否越界。注意是验算 lineNums - 1 次。ret = 3 * ret % p; // 中途就取余,使其不越界if(b == 0) return (int)(ret * 3 % p); //刚好被3整除的,要算上前一段if(b == 1) return (int)(ret * 4 % p); //被3整除余1的,要算上前一段else return (int)(ret * 6 % p); //被3整除余2的,要算上前一段}}
