2022-4-10 高頻面試題
阿新 • • 發佈:2022-04-10
279. 完全平方數
給你一個整數 n
,返回 和為 n
的完全平方數的最少數量 。
完全平方數 是一個整數,其值等於另一個整數的平方;換句話說,其值等於一個整數自乘的積。例如,1
、4
、9
和 16
都是完全平方數,而 3
和 11
不是。
1 class Solution { 2 public int numSquares(int n) { 3 int[] ans=new int[n+1]; 4 Set<Integer> set=new HashSet<>(); 5 for (int i=1;i*i<=n;i++) {6 set.add(i*i); 7 ans[i*i]=1; 8 //System.out.println(i*i); 9 } 10 for (int i=2;i<=n;i++) { 11 if (!set.contains(i)) { 12 ans[i]=i; 13 for (int j=1;j*j<=i;j++) 14 { 15 ans[i]=Math.min(ans[i],ans[j*j]+ans[i-j*j]);16 //System.out.println(i+" "+ans[i]); 17 } 18 } 19 } 20 return ans[n]; 21 } 22 }
思路:動態規劃。