其他分享
首页 > 其他分享> > 力扣刷题:LCP 18. 早餐组合(js)

力扣刷题: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