題目描述
提示幫助
提交記錄社群討論閱讀解答
隨機一題
給定正整數 n,找到若干個完全平方數(比如1, 4, 9, 16, ...
)使得它們的和等於n。你需要讓組成和的完全平方數的個數最少。
示例 1:
輸入:n =示例 2:12
輸出:3解釋:12 = 4 + 4 + 4.
輸入:n =13
輸出:2解釋:13 = 4 + 9.
class solution
dp[0] = 1;
for(int i = 1;i < square.size();i++)
}return dp[n];
}};
解題思路:特意嘗試一下dp的解法,不知道有沒有更好的dp轉移方程,這樣感覺用時有點多。將平方數存入乙個vector中,每乙個數的初始值都是i,即有 i 個 1 相加。然後遍歷square陣列(小於n的),對於dp[j - square[i]] + dp[square[i]]是目前利用該平方數可以獲得的最小值,例如:dp[5] = 5,當square[i] = 4的時候,那麼dp[5] = dp[1] + dp[4] = 2,dp[8] = dp[4] + dp[4] = 2。
所以dp轉移方程dp[j] = min(dp[j - square[i]] + dp[square[i]],dp[j])
Leetcode 279 完全平方數
給定正整數 n,找到若干個完全平方數 比如1,4,9,16,使得它們的和等於n。你需要讓組成和的完全平方數的個數最少。示例 1 輸入 n 12輸出 3解釋 12 4 4 4.示例 2 輸入 n 13輸出 2解釋 13 4 9.解題思路 比較容易想到的方法是bfs 廣度優先搜尋 如果知道四平方和的話就...
Leetcode279 完全平方數
給定正整數 n,找到若干個完全平方數 比如 1,4,9,16,使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。示例 1 輸入 n 12 輸出 3 解釋 12 4 4 4.示例 2 輸入 n 13 輸出 2 解釋 13 4 9.解法1 bfs public intnumsquares in...
LeetCode 279 完全平方數
279.完全平方數 給定正整數 n,找到若干個完全平方數 比如1,4,9,16,使得它們的和等於n。你需要讓組成和的完全平方數的個數最少。示例 1 輸入 n 12輸出 3解釋 12 4 4 4.示例 2 輸入 n 13輸出 2解釋 13 4 9.解題思路 對問題建模,將整個問題轉化為乙個圖論問題。從...