[LeetCode] 279完璧な四角(DP)

タイトル

完全平方数を見つけるために、正の整数nを与えられた(例えば、1、4、9、16、...)となるようNに等しいその合計。少なくとも、あなたは数と組成の完全な方形を作成する必要があります。

例1:

入力:N-12 =
出力:3
解説:12 + 4 + 4 = 4
例2:

入力:N-13 =
出力:2
説明:13 + 4 = 9。

出典:ボタン(LeetCode)滞在
:リンクhttps://leetcode-cn.com/problems/perfect-squares
すべてのネットワークからの控除が著作権を保有します。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。

問題の解決策

  • DP [I] Iからなる最小の完全な正方形を表します。すなわち、I-1組成物には、私に初期化されます。
  • 注意i-j*j>=0的条件。

コード

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

おすすめ

転載: www.cnblogs.com/coding-gaga/p/11735857.html