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

}

};

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

相关推荐
hetao17338376 分钟前
2025-11-25~26 hetao1733837的刷题记录
c++·算法
历程里程碑23 分钟前
各种排序法大全
c语言·数据结构·笔记·算法·排序算法
少许极端33 分钟前
算法奇妙屋(十四)-简单多状态dp问题
算法·动态规划·图解算法·简单多状态dp·打家劫舍问题·买卖股票问题全解
爱学测试的雨果36 分钟前
收藏!软件测试面试题
开发语言·面试·职场和发展
川Princess1 小时前
【面试经验】梅赛德斯奔驰X-Seed AI Systems - Autonomous Driving Agent Efficiency二面
面试·职场和发展
2301_823438021 小时前
解析论文《复杂海上救援环境中无人机群的双阶段协作路径规划与任务分配》
人工智能·算法·无人机
embrace992 小时前
【C语言学习】结构体详解
android·c语言·开发语言·数据结构·学习·算法·青少年编程
Ayanami_Reii2 小时前
基础数学算法-开关问题
数学·算法·高斯消元
稚辉君.MCA_P8_Java2 小时前
通义 Go 语言实现的插入排序(Insertion Sort)
数据结构·后端·算法·架构·golang
编程小Y2 小时前
配置Associated Domains时,需要注意哪些细节?
职场和发展·蓝桥杯