当前位置:   article > 正文

leetcode 279.完全平方数

leetcode 279.完全平方数

思路:完全背包问题

可以首先预处理出来所谓的完全平方数有什么东西,存储到一个数组当中。

然后再进行完全背包的筛选问题。这里将个数作为价值,都是1,容积其实就是数本身。

注意:初始化的时候并不能让dp[0]=0,因为当和为零的时候是没有完全平方数可以组成的,0也不是完全平方数,0的平方没有意义。

  1. class Solution {
  2. public:
  3. int numSquares(int n) {
  4. vector<int>ans;
  5. for(int i=1;i<=10000;i++){
  6. int tmp=i;
  7. for(int j=1;j<=sqrt(i);j++){
  8. if(j*j==tmp){
  9. ans.push_back(i);
  10. break;
  11. }
  12. }
  13. }
  14. vector<int>dp(10010,INT_MAX);
  15. dp[0]=0;
  16. for(int i=0;i<ans.size();i++){
  17. for(int j=ans[i];j<=n;j++){
  18. dp[j]=min(dp[j],dp[j-ans[i]]+1);
  19. }
  20. }
  21. return dp[n];
  22. }
  23. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/708674
推荐阅读
相关标签
  

闽ICP备14008679号