(1)动态规划
class Solution {
public:
int numSquares(int n) {
vector<int> v(n+1,0);
int min_count;
for(int i=1;i<n+1;i++) {
min_count=INT_MAX;
for(int j=1;j*j<=i;j++) {
min_count=min(min_count,v[i-j*j]);
}
v[i]=min_count+1;
}
return v[n];
}
};