记vivo一道笔试题

1,842 阅读1分钟

今晚做了vivo秋招提前批的笔试题,进入笔试就给出了三道编程题,我原本以为这只是笔试的一部分题目,做完这三道编程题提交后发现没有其他题目了。。。有一道题目有点困惑,分享在这里看看掘友们有没有更好的方法解决。

题目大概是

某人准备礼品采购,每个礼品都有相应的价格和热度值,计划采购三件礼品,同一礼品只能采购一次;请编写一个程序输出采购的最大热度值,该程序接受三个数组作为参数,一个数组存放着可以采购的最大金额,第二个数组存放礼品的价格,第三个数组存放礼品相对应的热度值。

给出的示例

arr1 = [1000], arr2 = [300, 600, 200, 180, 100, 450], arr3 = [6, 10, 3, 4, 5, 8];

输出结果: 21

当我看到这个题目时,想了几分钟,看有什么算法可以优雅的编写这个程序,最后用了一个比较愚蠢的方法,代码如下:

代码

就这样。。用了三个for循环,我感觉这个方法不好,但是没想到有什么其他解决方法了。你们如果有其他更好的方法,欢迎提出来~