天天看点

动态规划练习 leetcode 279.完全平方数

leetcode 279.完全平方数

动态规划练习 leetcode 279.完全平方数

动态转移方程:dp[i] = min(dp[i], dp[i - j * j] + 1)

其中dp[i]初始值为i(最坏情况都由1组成)

class Solution {
public:
    int numSquares(int n) {
        vector<int> dp;
        dp.push_back(0);
        for(int i = 1; i <= n; i++){
            dp.push_back(i);
            for(int j = 1; i - j * j >= 0; j++){
                dp[i] = min(dp[i], dp[i - j * j] + 1);
            }
        }
        return dp[n];
    }
};