代码随想录 day44 完全背包

class Solution {

public:

int change(int amount, vector<int>& coins) {

vector <int> dp(amount+1,0);

dp[0]=1;

for(int i=0;i<coins.size();i++){

for(int j=coins[i];j<=amount;j++){

dp[j]+=dp[j-coins[i]];

}

}

return dp[amount];

}

};

另外你这个是不能从大到小遍历的 因为这样的话 你就落下了重复选取的情况

class Solution {

public:

int combinationSum4(vector<int>& nums, int target) {

vector<int>dp(target+1,0);

dp[0]=1;

for(int i=0;i<=target;i++){

for(int j=0;j<nums.size();j++){

if(i-nums[j]>=0&& dp[i] < INT_MAX - dp[i - nums[j]])

dp[i]+=dp[i-nums[j]];

}

}

return dp[target];

}

};

第二题还是要小心啊 虽然看起来是排列 实际上是组合!!!

相关推荐
南境十里·墨染春水5 小时前
C++传记(面向对象)虚析构函数 纯虚函数 抽象类 final、override关键字
开发语言·c++·笔记·算法
2301_797172755 小时前
基于C++的游戏引擎开发
开发语言·c++·算法
有为少年6 小时前
告别“唯语料论”:用合成抽象数据为大模型开智
人工智能·深度学习·神经网络·算法·机器学习·大模型·预训练
比昨天多敲两行6 小时前
C++ 二叉搜索树
开发语言·c++·算法
Season4506 小时前
C++11之正则表达式使用指南--[正则表达式介绍]|[regex的常用函数等介绍]
c++·算法·正则表达式
Tisfy7 小时前
LeetCode 2839.判断通过操作能否让字符串相等 I:if-else(两两判断)
算法·leetcode·字符串·题解
问好眼7 小时前
《算法竞赛进阶指南》0x04 二分-1.最佳牛围栏
数据结构·c++·算法·二分·信息学奥赛
会编程的土豆7 小时前
【数据结构与算法】优先队列
数据结构·算法
minji...9 小时前
Linux 进程信号(二)信号的保存,sigset_t,sigprocmask,sigpending
linux·运维·服务器·网络·数据结构·c++·算法
庞轩px9 小时前
模拟面试回答第十三问:JVM内存模型
jvm·面试·职场和发展