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}`)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容