野牛程序员讲少儿编程之——完全背包问题
🧐 什么是完全背包?
0-1背包里,每个宝贝只能拿一次,像考试答题机会只有一次。
而在完全背包里,每种宝贝可以拿无限次!想拿几件就拿几件,就像吃糖果,口袋能装得下,随便拿!
先看代码(附超详细注释)
🧠 小朋友版讲解:
背包总容量:4公斤!
规则:每样东西,可以拿好多好多次!
那怎么玩?
比如:
4个小熊饼干 重量 4kg,价值 600元!
1个智能音响 重量 4kg,价值 300元!
1个游戏手柄+1个小熊饼干 重量 4kg,价值 200+150=350元!
哪种最赚?
当然是拿 4个小熊饼干,价值高达 600元!
所以,程序跑出来就是:
为什么完全背包内层要从小到大遍历?
因为每个宝贝可以选很多次!
如果从大到小,就会错过很多组合机会。
从小到大,每次更新,让小容量的结果累积影响大容量,就像滚雪球一样越来越大!
记住的小知识点:
🤔 0-1背包和完全背包,到底有什么区别?
野牛程序员教少儿编程与信息学奥赛
宜宾市野牛网络科技有限公司专业微信小程序开发、网站建设、软件开发等
领取专属 10元无门槛券
私享最新 技术干货