leetcode279 完全平方数

class Solution {
public:
    int numSquares(int n) {
        
        //初始化vector<int> dp[i]=i i=[0,n];
        //状态转移方程 dp[i]=min(dp[i],dp[i-j*j]+1) i-j*j>=0 && j=0, j++;
        //time O(nsqrt(n)) space O(1);
        vector<int> dp;
        for(int i=0;i<=n;i++){
            dp.push_back(i);
        }
        for(int i=1;i<=n;i++){
            for(int j=1;i-j*j>=0;j++){
                dp[i]=min(dp[i],dp[i-j*j]+1);
            }
        }
        return dp[n];
    }
};

猜你喜欢

转载自www.cnblogs.com/joelwang/p/11997420.html