文档讲解:代码随想录 (programmercarl.com)
视频讲解:代码随想录的个人空间-代码随想录个人主页-哔哩哔哩视频 (bilibili.com)
LeetCode 322. 零钱兑换
解题代码:
class Solution {
public:
int coinChange(vector<int>& coins, int amount) {
vector<int>dp(amount+1,INT_MAX);
dp[0]=0;
for(int i=0;i<coins.size();i++){
for(int j=coins[i];j<=amount;j++){
if (dp[j - coins[i]] != INT_MAX)
dp[j]=min(dp[j-coins[i]]+1,dp[j]);
}
}
if(dp[amount]!=INT_MAX)return dp[amount];
return -1;
}
};
LeetCode 279.完全平方数
题目链接:279. 完全平方数 - 力扣(LeetCode)
解题代码如下(下面代码来自代码随想录 (programmercarl.com)):
class Solution {
public:
int numSquares(int n) {
vector<int>dp(n+1,INT_MAX);
dp[0]=0;
dp[1]=1;
for(int i=1;i<=n/2;i++){
for(int j=i*i;j<=n;j++){
dp[j]=min(dp[j-i*i]+1,dp[j]);
}
}
return dp[n];
}
};