说明
力扣上没有纯粹的完全背包的题目,所以先了解一下 完全背包的理论 , 可以去 卡码网第52题 (opens new window)去练习完全背包 后面的两道题目,都是完全背包的应用,做做感受一下完全背包的理论基础
区别
对于 纯完全背包问题(装满这个背包的最大价值或者问能否装满这个背包 ) , 两层for循环可以进行颠倒,且第二层for循环需正序遍历518. 零钱兑换 II 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
思考
为什么 dp[0]=1 ,还有遍历顺序
class Solution: def change(self, amount: int, coins: List[int]) -> int: dp = [0]*(amount + 1) dp[0] = 1 # 遍历物品 for i in range(len(coins)): # 遍历背包 for j in range(coins[i], amount + 1): dp[j] += dp[j - coins[i]] return dp[amount]
377. 组合总和 Ⅳ 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
提醒
题目求的是排列
class Solution: def combinationSum4(self, nums: List[int], target: int) -> int: dp = [0] * (target + 1) dp[0] = 1 for i in range(1, target + 1): # 遍历背包 for j in range(len(nums)): # 遍历物品 if i - nums[j] >= 0: dp[i] += dp[i - nums[j]] return dp[target]
拓展面试题
一次可以爬1或2步,问爬完n阶楼有几种方法
再问如果一次可以爬m步,问爬完n阶楼有几种方法
写出来后问你求的是排列数还是组合数,
这个遍历顺序可不可以颠倒呢,
如果颠倒求的是什么场景,不颠倒求的是什么场景
总结
对于非完全背包问题(问装满这个背包有多少种方法),此时我们要区分求的是组合数还是排列数
①如果是组合数其遍历顺序是先遍历物品再遍历背包
②如果是排列数其遍历顺序是先遍历背包再遍历物品
猜你喜欢
- 14天前(兰州旅游文化产业发展有限公司)甘肃省兰州市2023年乡村旅游暨A级旅游景区管理工作培训班开班
- 14天前(万豪酒店 珠海)万豪酒店品牌启航珠海金湾,续写大湾区拓展新篇
- 14天前(哥伦比亚号邮轮)爱达邮轮与哥仑比亚船舶管理集团达成合作
- 14天前(云南南博会展馆)旅居云南馆亮相第9届南博会
- 14天前(云南滇陇工程咨询有限公司)陇滇携手谋发展 文旅合作谱新篇
- 14天前(苏梅岛普吉岛哪个好玩)苏梅岛金普顿基塔蕾度假酒店推出家庭度假套餐
- 14天前(澳涞坞是什么)从本土品牌到全球舞台:澳涞山庄获国际顶级产业资源加持
- 14天前(锦江 iu)锦江荟APP原生鸿蒙版正式上线打造全场景旅行服务新体验
- 14天前(曹妃甸美仑华府哪个楼层好)曹妃甸新城教育经济新引擎启动—美仑国际酒店盛大开业
- 14天前(芜宣机场国际航班)新华丝路:芜宣机场开通至越南首都河内的国际货运航线
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章