题目描述
思路分析
dp保存会越界,找到最优分割大小为3, 基于3,进行模拟。
代码展示
class Solution {
public:
//n >= 5 2*(n-2) > n 3*(n-3) > n 且3*(n-3) >= 2*(n-2)
//n = 4 2 * 2 > 1 * 3
//2和3不能再分了 分了就变小了 且3优于2
int cuttingRope(int n) {
if (n < 3) {
return 1;
}
if (n == 3) {
return 2;
}
long res = 1;
while (n > 4) {
res *= 3;
n -= 3;
res %= 1000000007;
}
return (res * n) % 1000000007;
}
};