leetcode 279: Perfect Squares
2016-08-09 19:59
441 查看
Given a positive integer n, find the least number of perfect square numbers (for example,
For example, given n =
思路:
ans[12] = min( ans[12-9]+1, ans[12-4]+1, ans[12-1]+1 );
最初是用递归方法做,但超时了,因为涉及了许多重复计算;
后采用数组方式,记录中间计算结果,从1计算到n;
View Code
1, 4, 9, 16, ...) which sum to n.
For example, given n =
12, return
3because
12 = 4 + 4 + 4; given n =
13, return
2because
13 = 4 + 9.
思路:
ans[12] = min( ans[12-9]+1, ans[12-4]+1, ans[12-1]+1 );
最初是用递归方法做,但超时了,因为涉及了许多重复计算;
后采用数组方式,记录中间计算结果,从1计算到n;
class Solution { public: int numSquares(int n) { vector<int> ans(n+1,0); ans[1] = 1; for(int i=2;i<=n;i++) { int s = sqrt(i); if(s*s == i) ans[i] = 1; else { int tmp = i; for(int j=s;j>=1;j--) { int tmp2 = ans[i-j*j]+1; if(tmp2<tmp) tmp = tmp2; } ans[i] = tmp; } } return ans ; } };
View Code
相关文章推荐
- leetcode(279). Perfect Squares
- [leetcode] 279 Perfect Squares(DP,四平方和定理)
- [leetcode279] perfect squares
- Leetcode #279 Perfect Squares
- [leetcode 279]Perfect Squares
- (LeetCode 279) Perfect Squares
- LeetCode(279)Perfect Squares
- LeetCode 279 Perfect Squares
- LeetCode 279: Perfect Squares
- Leetcode 279 Perfect Squares
- Perfect Squares - LeetCode 279
- 【leetcode】Perfect Squares (#279)
- LeetCode[279] Perfect Squares
- [LeetCode#279] Perfect Squares
- LeetCode #279 - Perfect Squares - Medium
- leetcode279:Perfect Squares
- leetcode:数学: Perfect Squares(279)
- leetcode279-Perfect Squares
- LeetCode 279 Perfect Squares 题解
- [Leetcode] #279 Perfect Squares (BFS, DP)