タイトル
完全平方数を見つけるために、正の整数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];
}
}