力扣 279. 完全平方數 dp

https://leetcode-cn.com/problems/perfect-squares/

在這裏插入圖片描述

思路:dpdp,列出n\sqrt n個完全平方數,問題就轉化成了完全揹包問題。

class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1,0x3f3f3f3f);
        vector<int> a;
        for(int i=1;i*i<=n;i++)
            a.push_back(i*i);
        dp[0]=0;
        int siz=a.size();
        for(int i=0;i<siz;i++)
            for(int j=a[i];j<=n;j++)
                dp[j]=min(dp[j],dp[j-a[i]]+1);
        return dp[n];
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章