力扣题解(完全平方数)

279. 完全平方数

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。

完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,149 和 16 都是完全平方数,而 3 和 11 不是。

思路:

可以看成在所有满足(k*k<=n,k>=1)的所有k所组成的数组中取某些数,可以多次取同一个数,然后和为n的最小组合数,因此和零钱兑换问题实质上一样。

dp[i][j]表示前i个数,和为j的最小数量。

dp[i][j]=min(dp[i-1][j],dp[i][j-num[i]]+1)。

初始化:

i为0,j除了为0均不可能实现,因此设为一个很大的数。

j为0,对任意i,都有零个数字组成j的可能,因此dp[i][0]=0;

class Solution {
public:
 int coinChange(vector<int>& coins, int amount) {
     int n=coins.size();
     int INF=0x3f3f3f3f;
     vector<vector<int>>dp(n+1,vector<int>(amount+1,INF));
     for(int i=0;i<=n;i++)
     {
        dp[i][0]=0;
     }
     coins.insert(coins.begin(),0);
     for(int i=1;i<=n;i++)
     {
        for(int j=1;j<=amount;j++)
        {
            dp[i][j]=dp[i-1][j];
            if(j-coins[i]>=0&&dp[i][j-coins[i]]!=-1)
            {
              //  cout<<i<<j-coins[i]<<" ||";
        
            dp[i][j]=min(dp[i][j],dp[i][j-coins[i]]+1);
            
            }
        }
     }
     return dp[n][amount]==INF?-1:dp[n][amount];


    }
    int numSquares(int n) {
      vector<int>coins;
      int i=1;
      while(i*i<=n)
      {
        coins.push_back(i*i);
        i++;
      }
     if((i-1)*(i-1)==n)
     return 1;
      return coinChange(coins,n);
    }
};

相关推荐

  1. 题解完全平方

    2024-07-21 12:16:02       21 阅读
  2. 279完全平方

    2024-07-21 12:16:02       31 阅读
  3. 279. 完全平方

    2024-07-21 12:16:02       21 阅读
  4. 367.有效的完全平方LeetCode)

    2024-07-21 12:16:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 12:16:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 12:16:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 12:16:02       45 阅读
  4. Python语言-面向对象

    2024-07-21 12:16:02       55 阅读

热门阅读

  1. leetcode位运算(1720. 解码异或后的数组)

    2024-07-21 12:16:02       17 阅读
  2. 数据结构 day1

    2024-07-21 12:16:02       15 阅读
  3. 5 webSocket

    2024-07-21 12:16:02       19 阅读
  4. 什么是样本不平衡?

    2024-07-21 12:16:02       16 阅读
  5. 面向开发者的提示词工程第六章-文本转换

    2024-07-21 12:16:02       17 阅读
  6. c++应用网络编程之四Linux常用的网络IO模型

    2024-07-21 12:16:02       18 阅读
  7. 【NLP】关于参数do_sample的解释

    2024-07-21 12:16:02       16 阅读