完全平方数—leetcode279
生活随笔
收集整理的這篇文章主要介紹了
完全平方数—leetcode279
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定正整數?n,找到若干個完全平方數(比如?1, 4, 9, 16, ...)使得它們的和等于 n。你需要讓組成和的完全平方數的個數最少。
示例?1:
輸入: n = 12
輸出: 3?
解釋: 12 = 4 + 4 + 4.
示例 2:
輸入: n = 13
輸出: 2
解釋: 13 = 4 + 9.
?
思路:動態規劃
使用dp的重點在于遞推式:
f(i)=1+min{f(i-1*1),f(i-2*2),...,f(i-k*k)}?k為小于i的最大完全平方數
湊成數值i的最少平方數的個數 =?湊成數值i-x*x的最少平方數的個數 + 1,其中x范圍為i-x*x>=0
class Solution { public:int numSquares(int n) {vector<int> dp(n+1,0);for(int i=1;i<=n;++i){int m = n;for(int j=1;j*j<=i;++j){if(dp[i-j*j]<m)m=dp[i-j*j];}dp[i] = m+1;}return dp[n];} };?
總結
以上是生活随笔為你收集整理的完全平方数—leetcode279的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NCHW与NC4HW4数据排布在卷积优化
- 下一篇: 回文子串—leetcode647