演算法系列 Perfect Squares

2021-09-30 13:45:59 字數 526 閱讀 3723

given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to n.

for example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9.

比較簡單的一種方法是採用動態規劃法,如果乙個數x可以表示為乙個任意數a加上乙個平方數bxb,也就是x=a+bxb,那麼能組成這個數x最少的平方數個數,就是能組成a最少的平方數個數加上1(因為b*b已經是平方數了)。

時間 o(n^2) 空間 o(n)

public

class solution

// 從小到大找任意數a

for(int a = 0; a <= n; a++)

}return dp[n];

}}

java演算法系列

棧的概念 棧是一種特殊的線性表,堆疊的資料元素以及資料元素之間的關係和線性表是完全一樣的。差別是線性表是在任意位置進行插入和刪除操作,棧是只允許在固定的一端進行插入和刪除,棧的插入和刪除只允許在棧頂,棧的插入和刪除通常稱為進棧和出棧。資料集合 每個資料元素的資料型別可以是任意的型別 操作的集合 進棧...

演算法系列 Move Zeroes

given an array nums,write a function to move all 0 s to the end of it while maintaining the relative order of the non zero elements.for example,given ...

演算法系列 Missing Number

given an array containing n distinct numbers taken from 0,1,2,n,find the one that is missing from the array.for example,given nums 0,1,3 return 2.note...