当前位置:网站首页>完全背包问题求组合数和排列数
完全背包问题求组合数和排列数
2022-08-01 16:22:00 【北海冥鱼未眠】
这个是完全背包问题的典型应用,由于只是求个数,不涉及到零钱排列情况不一样算两次的情况,所以两层for循环,外层遍历物品,内层遍历背包。
class Solution {
public int change(int amount, int[] coins) {
int[] dp = new int[amount+1];
dp[0] = 1;
for (int coin : coins) {
for (int i = coin;i<= amount;i++){
dp[i] += dp[i-coin];
}
}
return dp[amount];
}
}
这个与上面一题唯一不同的一点就是有序,顺序不同算两次,所以这里两层for循环的遍历顺序是外层遍历背包,内层遍历物品。
class Solution {
public int combinationSum4(int[] nums, int target) {
int[] dp = new int[target+1];
dp[0] = 1;
for(int j = 1;j<=target;j++){
for(int i = 0;i<nums.length;i++){
if(j>=nums[i]) dp[j] += dp[j-nums[i]];
}
}
return dp[target];
}
}
关于背包问题,参考文章。
边栏推荐
- PHP 安全漏洞:会话劫持、跨站点脚本、SQL 注入以及如何修复它们
- IronOS, an open source system for portable soldering irons, supports a variety of portable DC, QC, PD powered soldering irons, and supports all standard functions of smart soldering irons
- “查找附近的商铺”|Geohash+MySQL实现地理位置筛选
- 中国驻西班牙使馆再次提醒留学人员注意暑期安全
- Ranking of itineraries (summer vacation daily question 12)
- 04 flink 集群搭建
- 【无标题】
- 1个月写900多条用例,2线城市年薪33W+的测试经理能有多卷?
- 05 doris 集群搭建
- DOM树jsjs特效代码
猜你喜欢
如何有效地开发 Jmix 扩展组件
直播app开发,是优化直播体验不得不关注的两大指标
OneFlow源码解析:Op、Kernel与解释器
MySQL最大建议行数2000w, 靠谱吗?
pynlpir更新license Error: unable to fetch newest license解决方案
14年测试人最近的面试经历,值得借鉴√
便携烙铁开源系统IronOS,支持多款便携DC, QC, PD供电烙铁,支持所有智能烙铁标准功能
清华教授发文劝退读博:我见过太多博士生精神崩溃、心态失衡、身体垮掉、一事无成!...
主流定时任务解决方案全横评
ESP8266-Arduino programming example-GA1A12S202 logarithmic scale analog light sensor
随机推荐
指针进阶(二)
暑气渐敛,8月让我们开源一夏!
珠海市生物安全P3实验室主体结构封顶
今晚直播!
Go 单元测试
工业制造行业的低代码开发平台思维架构图
打破文件锁限制,以存储力量助力企业增长新动力
MySQL【数据处理的增删改】
MySQL INTERVAL 关键字指南
选择合适的 DevOps 工具,从理解 DevOps 开始
火花:集群计算工作集
27英寸横置大屏+实体按键,全新探险者才是安全而合理的做法
MySQL可以做多台vps的双向同步吗?
Shell basic function writing
美国弗吉尼亚大学、微软 | Active Data Pattern Extraction Attacks on Generative Language Models(对生成语言模型的主动数据模式提取攻击)
等变图神经网络在药物研发中大放异彩
蚂蚁首次披露核心基础软件技术开源版图
uwsgi配置文件启动
经验|如何做好业务测试?
比对软件-blastN结果详解