パーフェクトスクエアleetcode279

1  ""」
2は、 正の整数を考えると、N、Nに(例えば、1、4、9、16、...)は和完全平方数の最小数を見つける。
 3  実施例1:
 4  入力:N = 12
 5  出力:3
 6  解説:12 = 4 + 4 + 4
 7  実施例2:
 8  入力:N = 13
 9  出力:2
 10  説明:13 = 4 + 9
 11  "" " 
12  """ 
13  、DP [0 ] = 0
 14  DP [1] = DP [0] +1 = 1つの
 15  DP [2] = DP [1] +1 = 2
 16  DP [3] = DP [2] +1 = 3
 17  DP [4] =最小{DP [4-1 * 1] +1、DP [4-2 * 2] +1}
 18       =最小{DP [3] +1、DP [0] +1}
 19        = 1つの
 20  DP [5] =最小{DP [5-1 * 1] +1、DP [5-2 * 2] +1}
 21        =最小{DP [4] +1、DP [1] +1}
 22        = 2
 23  24  25  26  DP [13] =最小{DP [13-1 * 1] +1、DP [13-2 * 2] +1、DP [13-3 * 3] +1}
 27         =最小{DP [12] + 1、DP [9] +1、DP [4] +1}
 28         = 2
 29  30  31  32  DP [N] =最小{DP [N -私は*] + 1}、N -私は* I> = 0 && I> = 1
33は、 DP [n]の二乗の数との和を表すN(リクエスト)です。
34は、 配列が完全平方数を有するすべてのインデックスが1に設定されている番号(例えば、1,4,9 ...)、プラス電流iの最小のjを組み合わせた長さを見つける層トラバースあるDP。
35  動的方程式は、という意味:[ - J * J i]は各iについて、iの最小数+1の正方形のものの完全な数よりも小さい場合は、所望の、即ちDPである
 + 1。36  "" " 
37 [  クラス解決法1:
 38れる     DEF (Nセルフ)numSquaresは:
 39          DP = [フロート(' INF ')] *(N + 1 40          I = 1。
 41は、         一方 I * I <= N-:
 42である              [DP私は、* I] 1 =
 43である              I = + 1。
 44がある         ために I 範囲(1 ,. 1 N- +。 )。
45              J =
 46              、一方 J * J <= I:
 47                  DP [I] =分(DP [i]は、DP [IJ * J] +1 48                  J + = 1つの
 49          戻り DP [N]

 

おすすめ

転載: www.cnblogs.com/yawenw/p/12359346.html