LeetCode - 279 - Perfect Squares
2017-08-01 18:32
507 查看
Given a positive integer n, find the least number of perfect square numbers (for example,
For example, given n =
给你一个数,问最少能用多少个完全平方数组成。最少。
动态规划美滋滋啊。
所以,dp
= min{ dp[n - i * i] + 1 }, n - i * i >= 0 && i >= 1
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.
给你一个数,问最少能用多少个完全平方数组成。最少。
动态规划美滋滋啊。
dp[0] = 0 dp[1] = dp[0]+1 = 1 dp[2] = dp[1]+1 = 2 dp[3] = dp[2]+1 = 3 dp[4] = Min{ dp[4-1*1]+1, dp[4-2*2]+1 } = Min{ dp[3]+1, dp[0]+1 } = 1 dp[5] = Min{ dp[5-1*1]+1, dp[5-2*2]+1 } = Min{ dp[4]+1, dp[1]+1 } = 2
所以,dp
= min{ dp[n - i * i] + 1 }, n - i * i >= 0 && i >= 1
class Solution { public: int numSquares(int n) { if (n <= 0) return 0; vector<int> dp(n+1, INT_MAX); dp[0] = 0; for (int i = 0; i <= n; ++i) { for (int j = 1; j * j <= i; ++j) dp[i] = min(dp[i], dp[i - j*j] + 1); } return dp ; } };
相关文章推荐
- LeetCode(279)Perfect Squares
- Leetcode 279 Perfect Squares
- leetcode(279). Perfect Squares
- [Leetcode 279] Perfect Squares
- (LeetCode 279) Perfect Squares
- [leetcode279] perfect squares
- DP问题:leetcode(279)Perfect Squares
- LeetCode 279 Perfect Squares
- [leetcode] 279 Perfect Squares(DP,四平方和定理)
- Leetcode #279 Perfect Squares
- [leetcode 279]Perfect Squares
- LeetCode[279] Perfect Squares
- leetcode 279: Perfect Squares
- 【leetcode】Perfect Squares (#279)
- leetcode279:Perfect Squares
- leetcode:数学: Perfect Squares(279)
- Perfect Squares - LeetCode 279
- LeetCode 279 Perfect Squares 题解
- [Leetcode] #279 Perfect Squares (BFS, DP)
- LeetCode #279 - Perfect Squares - Medium