class Solution {
public:
int numSquares(int n) {
/*
dp[j] : 在所有完全平方数中可放回的选择,和为 j 的完全平方数的最少数量
dp[j] = min(dp[j], dp[j - squareNumbers[i]] + 1)
*/
vector<int> dp(n + 1, n);
dp[0] = 0; // 0
for(int j = 1; j <= n; j ++){
for(int i = 0; i * i <= n ; i ++){
if(j >= i * i)
dp[j] = min(dp[j], dp[j - i * i] + 1);
}
}
return dp[n];a
}
};
<Talk is cheap, show me the code 17> LeetCode.279 完全平方数
最新推荐文章于 2024-08-04 23:03:31 发布