题目解析
第一眼看这题有点像二维费用背包,但是本题备注中有一个关键限制:
在虚拟游戏中,最多只能投资2个理财产品;
那么本题其实就变成了:m个理财产品中选1个或2个,所选产品风险值之和 ≤ x,投资额之和 ≤ n,并且最终所选产品的投资回报之和最大。
由于 m 的数量级不大,取值范围[1,20],因此可以考虑暴力破解。
前面解法思路只有93%通过率,根据题目意思:
你要在可接受范围内选择最优的投资方式获得最大回报。
如果有多种投资方式能拿到最大回报,那么此时应该优中选优(虽然题目没有明说),我们应该选其中风险值更小的。
另外,需要注意的是,当我们选择的两个产品的投资回报相同时,此时应该优先投资风险更小的产品。
我理解应该最后7%的用例应该就是这两个场景。
JS算法源码
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// 产品数, 总投资, 总风险
const [m, n,

已下架不支持订阅
733

被折叠的 条评论
为什么被折叠?



