classSolution{public:intintegerBreak(int n){if(n <=3)return n -1;elseif(n ==4)return4;else{if(n %3==0)returnpow(3, n /3);elseif(n %3==1)returnpow(3, n /3-1)*4;elsereturnpow(3, n /3)*2;}}};
279. 完全平方数
思路一:拉格朗日平方定理
classSolution{public:boolcheck(int x){int r =sqrt(x);return r * r == x;}intnumSquares(int n){if(check(n))return1;for(int a =1; a <= n / a; a ++){if(check(n - a * a))return2;}while(n %4==0) n /=4;if(n %8!=7)return3;return4;}};
思路二:动态规划背包问题
classSolution{public:intnumSquares(int n){
vector<int>f(n +1);for(int i =1; i <= n; i ++) f[i]= i;for(int i =1; i * i <= n; i ++){int v = i * i;for(int j = v; j <= n; j ++)
f[j]=min(f[j], f[j - v]+1);}return f[n];}};