力扣刷题:LCP 18. 早餐组合(js)
作者:互联网
题目:
小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 x 元。请返回小扣共有多少种购买方案。
注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1
难度:简单
题解:
首先将两个数组排序,这样方便我们进行查找,然后遍历数组,一个从头开始,一个从最后开始。查找符合条件的元素。只要当前的 “j” 符合条件,那么处于当前“i”的情况下,“j”前面的也符合。
ps:大体就是这个思路吧,这个我也是很懵逼的情况下写出来的。
//将数组排序 var DrinkSort = drinks.sort((a, b) => { return a - b; }); var StapSort = staple.sort((a, b) => { return a - b; }); //定义变量分别记录数组的长度 var StapL = StapSort.length; var DrinkL = DrinkSort.length; // 定义变量记录次数 var Count = 0; var i = 0; var j = DrinkL - 1; var Mod = 1000000007; //两个数组一个从头开始查找,一个从尾开始 while (i < StapL && j >= 0) { if (StapSort[i] + DrinkSort[j] <= x) { Count += j + 1; i += 1; } else { j -= 1; } } return Count % Mod;
标签:LCP,DrinkSort,18,记录,小扣,js,数组,var,StapSort 来源: https://www.cnblogs.com/beheTea/p/14119681.html