leetcode-279. 完全平方数

 

 

class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1,0);
        for(int i = 1; i <= n;i++){
            dp[i] = i; //最差情况,有i个1组成,
            for(int j = 1; i-j*j>=0; j++){
                // dp[i] 要么是最差情况,要么是dp[i-j*j]+1,
                // 因为i-j*j意味着i里面已经有一个完全平方了,可以由dp[i-j*j]+1组成。
                dp[i] = min(dp[i], dp[i-j*j]+1);
            }
        }
        return dp[n];
    }
};

 

posted @ 2021-07-24 15:04  三一一一317  阅读(39)  评论(0)    收藏  举报