前往
大廳
主題

LeetCode - 279. Perfect Squares 解題心得

Not In My Back Yard | 2022-03-27 00:00:04 | 巴幣 10 | 人氣 253

題目連結:


題目意譯:
給定一整數 n,回傳最少所需完全平方數使得總和為 n。

一個完全平方數為一整數其為一整數的平方之值;換句話說,其為某個整數與自己的乘積。例如,1 、 4 、 9 和 16 為完全平方數,而 3 和 11 則不是。

限制:
1 ≦ n ≦ 10 ^ 4



範例測資:
範例 1:
輸入: n = 12
輸出: 3
解釋: 12 = 4 + 4 + 4.

範例 2:
輸入: n = 13
輸出: 2
解釋: 13 = 4 + 9.


解題思維:
定義一陣列 D,其中 D[i] 代表數字 i 最少所需之完全平方數。則我們可以看到 D[0] = 0 、 D[1] = 1,且
D[i] = min(D[i - j ^ 2]) + 1 對於所有 j ^ 2 ≦ i
因此我們可以從 k = 2 開始一路從 D[2] 一路算到 D[n],此時 D[n] 即為所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作