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

}

};

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

相关推荐
csuzhucong2 分钟前
一阶魔方、一阶金字塔魔方、一阶五魔方
算法
五花就是菜15 分钟前
P12906 [NERC 2020] Guide 题解
算法·深度优先·图论
辞旧 lekkk27 分钟前
【c++】封装红黑树实现mymap和myset
c++·学习·算法·萌新
星轨初途33 分钟前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
n***F87534 分钟前
SpringMVC 请求参数接收
前端·javascript·算法
Liangwei Lin1 小时前
洛谷 P1025 [NOIP 2001 提高组] 数的划分
算法
yuuki2332331 小时前
【C++】类和对象(上)
c++·后端·算法
dangdang___go1 小时前
动态内存管理||malloc和free.realloc和calloc
c语言·开发语言·算法·动态内存管理
数字化脑洞实验室1 小时前
智能决策与决策优化:从算法到产业的演进逻辑
算法
cpp_25011 小时前
P5412 [YNOI2019] 排队
数据结构·c++·算法·题解·洛谷