LCP 18. 早餐组合

小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 x 元。请返回小扣共有多少种购买方案。

注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1

示例 1:

输入:staple = [10,20,5], drinks = [5,5,2], x = 15输出:6

解释:小扣有 6 种购买方案,所选主食与所选饮料在数组中对应的下标分别是:
第 1 种方案:staple[0] + drinks[0] = 10 + 5 = 15;
第 2 种方案:staple[0] + drinks[1] = 10 + 5 = 15;
第 3 种方案:staple[0] + drinks[2] = 10 + 2 = 12;
第 4 种方案:staple[2] + drinks[0] = 5 + 5 = 10;
第 5 种方案:staple[2] + drinks[1] = 5 + 5 = 10;
第 6 种方案:staple[2] + drinks[2] = 5 + 2 = 7。

示例 2:

输入:staple = [2,1,1], drinks = [8,9,5,1], x = 9输出:8

解释:小扣有 8 种购买方案,所选主食与所选饮料在数组中对应的下标分别是:
第 1 种方案:staple[0] + drinks[2] = 2 + 5 = 7;
第 2 种方案:staple[0] + drinks[3] = 2 + 1 = 3;
第 3 种方案:staple[1] + drinks[0] = 1 + 8 = 9;
第 4 种方案:staple[1] + drinks[2] = 1 + 5 = 6;
第 5 种方案:staple[1] + drinks[3] = 1 + 1 = 2;
第 6 种方案:staple[2] + drinks[0] = 1 + 8 = 9;
第 7 种方案:staple[2] + drinks[2] = 1 + 5 = 6;
第 8 种方案:staple[2] + drinks[3] = 1 + 1 = 2;

代码

class Solution {public:int breakfastNumber(vector<int>& staple, vector<int>& drinks, int x) {const int mod = 1e9 + 7;int ans = 0;// 从小到大排序sort(staple.begin(), staple.end());sort(drinks.begin(), drinks.end());int j = drinks.size() - 1;/*思想:让主食的最小去依次去加饮料从大到小的价格,如果加到一个当前最大的饮料价格就不用再计算比这个价格小的那些价格了(必然满足),此时数量就是当前主食对应的购买方案个数。。。。。以此类推计算下一个主食的搭配*/ for (int i = 0; i < staple.size(); i++) {while (j >= 0 && staple[i] + drinks[j] > x) j--;if (j == -1)break;ans += j + 1;ans %= mod;}return ans;}
};

LeetCode 18. 早餐组合相关推荐

  1. ⭐算法入门⭐《二分枚举》简单15 —— LeetCode LCP 18. 早餐组合

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   小扣在秋日市集选择了一 ...

  2. 【Leetcode】 LCP 18. 早餐组合(简单)

    1. 题目 小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x ...

  3. LeetCode LCP 18. 早餐组合 JAVA

    小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x 元.请返回 ...

  4. LCP 18.早餐组合

    小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x 元.请返回 ...

  5. LCP 18. 早餐组合

    小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x 元.请返回 ...

  6. 【二分查找-简单】LCP 18. 早餐组合

    题目 注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1 提示: 1 <= staple.length <= 10^ ...

  7. 【编程题】【Scratch四级】2022.03 早餐组合

    早餐组合 小猫家附近的早餐店会供应两种饮料和四种点心,饮料和点心只能各选一种,问共有多少种不同的早餐搭配? 饮料:豆浆,牛奶 点心:蛋糕.油条.饼干.面包 1. 准备工作 (1)保留舞台白色背景和默认 ...

  8. LeetCode | 0077. Combinations组合【Python】

    LeetCode 0077. Combinations组合[Medium][Python][回溯] Problem LeetCode Given two integers n and k, retur ...

  9. Leetcode 77. Combinations 组合

    Leetcode 77. Combinations 组合 标签 : Leetcode 题目地址: https://leetcode-cn.com/problems/combinations/ 题目描述 ...

最新文章

  1. django前端引用数据_「基于Python技术的智慧中医商业项目」Django前端网站篇-5.资讯的数据交互...
  2. 【GO】golang 的new 和 make
  3. JNI开发笔记(六)--一种更规范的so库生成方法
  4. 【英语学习】【English L06】U04 Adventure L1 I want to watch a ballet show there
  5. MATLAB在运筹学背包问题的应用,运筹学论文之二维背包问题.docx
  6. 微星主板更新BIOS能识别U盘但读取不到BIOS文件
  7. VS编译qt程序后生成的exe文件无法定位程序输入点于动态链接库
  8. 小学数学研究性学习设计方案
  9. 挂机机器人虚拟服务器,[机制|聊天]BotMaker —— 在你的服务器轻松创建机器人[1.8-1.13.2]...
  10. 物联网-移远m26使用MQTT协议,AT指令对接阿里云
  11. Python PEP8 代码规范常见问题及解决方法
  12. css 绘制心形图案
  13. ASP+AJAX实现分页效果[Z]
  14. 求解1+1/2+1/3+...1/99+1/100的和
  15. stc89c51单片机音乐盒系统设计_基于单片机数字音乐盒的设计与实现(附PCB,电路图,程序)...
  16. html 图像处理 灰度图和浮雕图类PS
  17. nginx正向代理,提供爬虫请求代理
  18. 2010年06月《安全天下事之安全的证书与证书体系的安全》
  19. linux系统从开机到登陆界面的启动过程
  20. python 读心术

热门文章

  1. 链游玩家大事件:第二期合伙人、动物大亨5月15日同时上线
  2. 微星笔记本怎么重装系统教程
  3. 360ARP防火墙1.1Beta版本
  4. 吐槽程序员的变量名和函数名(给变量和函数取名字时遇到的坑)
  5. 五大最罕见畸形动物:双头猫获吉尼斯纪录
  6. Idhttp ,cookie相关
  7. android dev guide 中文版,《Android Dev Guide》系列教程1:什么是Android?
  8. 哪些服务器曾被发现文件解析漏洞,常见的文件解析漏洞总结
  9. 同学少年多不贱 [咱们的大学生活]
  10. CentOS7新特性——systemd及systemctl