早餐组合(购买方案)
小扣在秋日市集选择了一家早餐摊位,一维整型数组 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;
提示:
1 <= staple.length <= 10^5
1 <= drinks.length <= 10^5
1 <= staple[i],drinks[i] <= 10^5
1 <= x <= 2*10^5
示例代码1:
【下面代码耗时过于严重,不予采纳】
class Solution(object):def breakfastNumber(self, staple, drinks, x):""":type staple: List[int]:type drinks: List[int]:type x: int:rtype: int"""staple.sort()drinks.sort()count = 0for i in staple:for j in drinks:if i + j <= x:count += 1else:breakreturn count
示例代码2:
class Solution(object):def breakfastNumber(self, staple, drinks, x):""":type staple: List[int]:type drinks: List[int]:type x: int:rtype: int"""staple.sort()drinks.sort()n, m = len(staple), len(drinks)count = 0i, j = 0, m-1while i < n and j >= 0:if staple[i] + drinks[j] <= x:count += j+1i += 1else:j -= 1return count % 1000000007
双指针:i, j 分别指向排序后的 staple 和 drinks 的头尾, 一个向后遍历,一个向前遍历时间复杂度:O(mlogm + nlogn + m + n)时间复杂度:O(1)1. if staple[i] + drinks[j] <= x: 说明第 i 个 staple 和 前 j+1 个 drinks 都满足条件(因为已经排序),所以这次有 j+1 个满足条件的组合;然后 i++;2. if staple[i] + drinks[j] > x:说明当前值过大,那么要减小和,就把 j 往前移,即 j-- ,继续找下一个满足条件的 i 和 j
早餐组合(购买方案)相关推荐
- LCP 18.早餐组合
小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x 元.请返回 ...
- ⭐算法入门⭐《二分枚举》简单15 —— LeetCode LCP 18. 早餐组合
文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述 小扣在秋日市集选择了一 ...
- 【早餐组合(LCP-18-java)】
早餐组合(LCP-18-java) 小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一 ...
- LeetCode 18. 早餐组合
LCP 18. 早餐组合 小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且 ...
- 【编程题】【Scratch四级】2022.03 早餐组合
早餐组合 小猫家附近的早餐店会供应两种饮料和四种点心,饮料和点心只能各选一种,问共有多少种不同的早餐搭配? 饮料:豆浆,牛奶 点心:蛋糕.油条.饼干.面包 1. 准备工作 (1)保留舞台白色背景和默认 ...
- LCP 18. 早餐组合
小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x 元.请返回 ...
- 王达老师视频课程“会员”优惠购买方案
王达老师视频课程"会员"优惠购买方案 课程背景介绍 自今年3月份以来,王达老师应广大读者朋友的要求开始了他的视频课程创作之旅,目前已完成了140多个课时的课程创作,并发布到他在51 ...
- 【Leetcode】 LCP 18. 早餐组合(简单)
1. 题目 小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x ...
- LeetCode LCP 18. 早餐组合 JAVA
小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格.小扣的计划选择一份主食和一款饮料,且花费不超过 x 元.请返回 ...
最新文章
- CVPR 2021:记一次神奇的 Rebuttal 经历
- 计算机连接外设的端口驱动,将 KMDF 外设驱动程序连接到串行端口
- pycharm如何设置注释的字体颜色
- 已经感冒好长一段时间了 不过今天我的新blog开张
- 科大星云诗社动态20210402
- c语言判断整数_C语言技能|(草稿,不断完善中...)
- One River CEO:从长远来看比特币可能达到每枚50万美元
- python django异步访问_初试Ajax异步请求(基于Django框架)
- Beta阶段第1周/共2周 Scrum立会报告+燃尽图 06
- [20180812]四校联考
- WCF笔记--泛型与集合数据类型
- android Tbs腾讯X5内核初始化失败
- Oracle索引原理
- 城市天际线伊甸园39W人口存档
- 最优灵活体系结构(Optimal Flexible Architecture,OFA)
- 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架
- Python_Task01:变量、运算符、数据类型及位运算
- Adobe Illustrator CC 2018制作七巧板
- 列表2:查询复制函数实操
- ShareMouse ,解决鼠标失灵的问题
热门文章
- 应用在大规模推荐系统,Facebook提出组合embedding方法 | KDD 2020
- 倒计时 4 天!高通人工智能应用创新大赛颁奖典礼线上隆重举行
- NLP被英语统治?打破成见,英语不应是「自然语言」同义词
- 肖仰华:知识图谱落地,不止于“实现”
- 罗永浩“咬定”微信不放松
- 专访英特尔AIPG全球研究负责人Casimir Wierzynski:物理学、隐私和大脑将根本性塑造AI...
- 3天学会TensorFlow | 香港科技大学
- 如何使用 Spring 实现策略模式+工厂模式
- 牛逼,国产开源的远程桌面火了,只有9MB,支持自建中继器!
- “三高”程序员谈:“三高”集群架构 哈哈哈!!!