javascript篇--小偷来到了一个神秘的王宫

华为机考--题目描述
小偷来到了一个神秘的王宫,突然眼前一亮,发现5个宝贝,每个宝贝的价值都不一样,且重量也不一样,但是小偷的背包携带重量有限,所以他不得不在宝贝中做出选择,才能使偷到的财富最大,请你帮助小偷计算一下。

输入描述:
宝贝价值:6,3,5,4,6
宝贝重量:2,2,6,5,4
小偷背包容量:10

输出描述:
偷到宝贝的总价值:15

示例1
输入
6,3,5,4,6
2,2,6,5,4
10

输出
15

JS解法:

var val = [6,3,5,4,6];
var wei = [2,2,6,5,4];
var arr = [];
for (let i = 0; i < val.length; i++){
    const realVal = val[i]/wei[i];
    arr.push({
        index:i,
        val:val[i],
        realVal
    });
};
// 降序
arr.sort(function (a,b) {return b.realVal - a.realVal})
// 重量限制
var count = 0;
var countIndex = 0;
var countVal = 0;
for(let i = 0;i < val.length; i++){
    count += wei[i];
    if(count > 10){
        countIndex = i-1
    }
};
// 计算总价值
for(let i = 0; i < countIndex; i++){
    countVal += arr[i].val
};
console.log(`偷到宝贝的总价值: ${countVal}`)

你可能感兴趣的:(javascript篇--小偷来到了一个神秘的王宫)