题目
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。...解题
dp[n]dp[n]dp[n]
表示获得的最大乘积
当 n+1 时,可以拆成
(1,n),(2,n−1),(3,n−2),…,(n,1)(1,n),(2,n-1),(3,n-2),…,(n,...n 很大的时候,避免溢出:《剑指offer》面试题14- II....剪绳子 II
有结论:划分成尽可能多的3,最多2个2
求余1,2个2
求余2,1个2
class Solution {
public:
int cuttingRope(int n) {...if(n <= 3)
return n-1;
//尽可能多的3, 两端最多只有2个2
int p = n/3, q = n%3;