function PackageItem (name, weight, value){
this.name = name;
this.weight = weight;
this.value = value;
}
function completeKnapsack(bagItems, bagsize) {
let length = bagItems.length;
var f = [];//f.length = bagsize + 1;
var answers = [];
for (var i = bagsize ; i >= 0; i--) {
f[i] = 0;
answers[i] = [];
}
for (var i = 0; i < length; i++) {
for (var weight = bagItems[i].weight; weight <= bagsize; weight++) {
if (f[weight] < f[weight - bagItems[i].weight] + bagItems[i].value) {
f[weight] = f[weight - bagItems[i].weight] + bagItems[i].value;
answers[weight] = answers[weight - bagItems[i].weight].slice() ;
answers[weight].push(bagItems[i].name);
}
}
}
answers[bagsize].forEach(function(item,index,array) {
console.log(item);
});
return f[bagsize];
}
let length = completeKnapsack(bagItems,11);
console.log(length);
完全背包
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我在进行一些互联网公司的技术笔试的时候,对于我来说最大的难题莫过于最后的那几道编程题了,这对算法和数据结构有一定程...
- 很经典的动态规划问题,具体思路这里就不列出了,网上太多资料了。想要详细理解的话可以去看背包九讲这里分别列出,01背...
- 在阳朔期间突然兴起了学习精酿的念头,想学学精酿的历史,比利时精酿和德国精酿的区别,中国精酿的来龙去脉,在家自制手工...