代码随想录 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];

}

};

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

相关推荐
岛雨QA17 小时前
树结构实际应用「Java数据结构与算法学习笔记10」
数据结构·算法
zephyr0517 小时前
DP 从放弃到拿捏:一份持续更新的动态规划题解清单(一)
算法·动态规划
岛雨QA17 小时前
树结构的基础部分「Java数据结构与算法学习笔记9」
数据结构·算法
会编程的土豆17 小时前
2.25 做题
数据结构·c++·算法
Frostnova丶17 小时前
LeetCode 1356. 根据数字二进制下1的数目排序
数据结构·算法·leetcode
GEO行业研究员17 小时前
AI是否正在重构个体在健康相关场景中的决策路径——基于系统建模与决策链条结构分析的讨论
人工智能·算法·重构·geo优化·医疗geo·医疗geo优化
岛雨QA17 小时前
哈希表「Java数据结构与算法学习笔记8」
数据结构·算法
独自破碎E17 小时前
【DFS】BISHI76 迷宫寻路
算法·深度优先
寄存器漫游者17 小时前
Linux 线程间通信
数据库·算法
岛雨QA18 小时前
查找算法「Java数据结构与算法学习笔记7」
数据结构·算法