首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
优秀的90后在炒股
华为_开发工程师
关注
已关注
取消关注
华为od要不要考虑一下,项目组直招,主攻Ai算力底座方向,行业前景绝对没问题,入职会安排专门的导师辅导,真实可靠,欢迎软/硬件人才私聊😁-杭州、西安、上海、东莞、成都均有岗
@code5bug:
最多购买宝石数目 - 华为OD统一考试
OD统一考试(C卷)分值: 100分题解: Java / Python / C++题目描述橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems[i],0<=i<n, n = gems.length宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续;例如客户最大购买宝石个数为m,购买的宝石编号必须为gems[i],gems[i+1]...gems[i+m-1](0<=i<n,m<=n)假设你当前拥有总面值为value的钱,请问最多能购买到多少个宝石,如无法购买宝石,则返回 0。输入描述第一行输入n,参数类型为int,取值范围:[0,10^6],表示橱窗中宝石的总数量。之后n行分别表示从第0个到第n-1个宝石的价格,即gems[0]到gems[n-1]的价格,类型为int,取值范围:(0,1000]。之后一行输入v,类型为int,取值范围:[0,10^9]表示你拥有的钱。输出描述输出int类型的返回值,表示最大可购买的宝石数量。示例1输入:7846316710输出:3示例2输入:01输出:0说明:因为没有宝石,所以返回 0示例3输入:961318932415输出:4题解滑动窗口的方法来解决。具体步骤如下:初始化滑动窗口的左边界和右边界为0。遍历右边界,累加宝石的价格,直到总价格大于等于拥有的钱或者遍历完所有宝石。如果总价格小于等于拥有的钱,更新最大购买宝石数量。移动左边界,减去左边界对应的宝石价格,直到总价格小于拥有的钱。重复步骤2到步骤4,直到右边界遍历完所有宝石。Javaimport java.util.Scanner;/** * @author code5bug */public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 输入宝石数量 int n = scanner.nextInt(); int[] gems = new int[n]; // 输入宝石价格 for (int i = 0; i < n; i++) gems[i] = scanner.nextInt(); // 输入拥有的钱 int v = scanner.nextInt(); // 使用滑动窗口求解 int left = 0, right = 0, total = 0, maxCount = 0; while (right < n) { total += gems[right]; // 收缩左边界 while (total > v) { total -= gems[left]; left++; } // 更新最大购买宝石数量 maxCount = Math.max(maxCount, right - left + 1); right++; } System.out.println(maxCount); }}Pythonn = int(input())gems = [int(input()) for _ in range(n)]v = int(input())left, total, maxCount = 0, 0, 0for right in range(n): total += gems[right] while total > v: total -= gems[left] left += 1 maxCount = max(maxCount, right - left + 1)print(maxCount)C++#include <iostream>#include <vector>using namespace std;int main() { int n; cin >> n; vector<int> gems(n); for (int i = 0; i < n; i++) { cin >> gems[i]; } int v; cin >> v; int left = 0, right = 0, total = 0, maxCount = 0; while (right < n) { total += gems[right]; // 收缩左边界 while (total > v) { total -= gems[left]; left++; } // 更新最大购买宝石数量 maxCount = max(maxCount, right - left + 1); right++; } cout << maxCount << endl; return 0;}🙏整理题解不易, 如果有帮助到您,请给点个赞 ❤️ 和收藏 ⭐,让更多的人看到。🙏🙏🙏
点赞 3
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
11-05 21:12
小天才_电子工程师(准入职员工)
小天才内推,小天才内推码
6.30 投递java后端工程师岗位,当天过初筛7.1 笔试可能是因为之前在牛客上刷过1000道java题,算法和八股文什么的也准备了一个月,笔试总体感觉比较简单7.10 一轮技术面,30min自我介绍先问了非常基础的IDEA基本使用,例如debug流程、常用快捷键拷打项目,说出自己项目中两个重难点,以及自己是如何解决的java基础,介绍常见集合以及底层原理,我当时讲了List中的ArrayList和linkedlist各自原理和对比,Map中的HashMap底层原理spring中的IOC和AOP是什么,有哪些实际应用场景?java8的新特性有什么?介绍常用的stream流方法还问了一些mys...
点赞
评论
收藏
分享
11-03 17:47
桂林电子科技大学 单片机
请大佬帮忙看看简历
27届毕业生,想在寒假找个嵌入式实习,大部分都已读不回,投的都是中小厂,是简历问题吗。这学期结束之后我是可以长期实习的请大佬指点指点
点赞
评论
收藏
分享
10-21 16:57
浙江理工大学 嵌入式工程师
什么时候双非硕才上桌呀
简历感觉还行,想找硬件开发的工作,线上线下投了差不多两百份简历咯还有几个面试官说项目太简单
热爱生活的咸鱼在吃瓜:
个人建议,项目太简单了,实习干的活都是测试的活,反正又没人知道你实习干啥了,你懂吧
点赞
评论
收藏
分享
09-28 19:15
景德镇陶瓷大学 C++
献祭华为😈😈
迷茫的大四🐶:
💐孝子启动失败,改为启动咏鹅
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
那个敢跟leader对线的实习生,现在怎样了
2521
2
...
数字马力一面(已挂)
2074
3
...
上班还能尸体回温。。。
2045
4
...
27找实习,简历求拷打
1690
5
...
实习才知道原来攒钱这么不容易(给新人小白)
1633
6
...
数字马力 一面
1512
7
...
数字马力一面
1411
8
...
转测开是我大学生涯做过最正确的选择
1366
9
...
字节业务中台后端开发一面
1364
10
...
面试官你是来骗方案了吧?休想
1335
创作者周榜
更多
正在热议
更多
#
同bg的你秋招战况如何?
#
171367次浏览
999人参与
#
扒一扒那些奇葩实习经历
#
125133次浏览
1094人参与
#
联影求职进展汇总
#
49498次浏览
320人参与
#
你实习是赚钱了还是亏钱了?
#
26245次浏览
224人参与
#
去哪儿求职进展汇总
#
145256次浏览
994人参与
#
用一句话形容你的团队氛围
#
16405次浏览
172人参与
#
京东开奖
#
457830次浏览
2538人参与
#
毕业论文进行时
#
4835次浏览
74人参与
#
面对逼签的应对技巧
#
5150次浏览
28人参与
#
我来点评面试官
#
13848次浏览
103人参与
#
牛友的国庆旅行碎片
#
20567次浏览
125人参与
#
今年秋招是回暖还是遇冷
#
27518次浏览
173人参与
#
秋招开始捡漏了吗
#
72389次浏览
512人参与
#
找工作八股要背到什么程度?
#
15504次浏览
232人参与
#
三一集团提前批进度交流
#
41127次浏览
229人参与
#
社会教会你的第一课
#
109781次浏览
859人参与
#
工作后,谈恋爱还和学生时代一样吗?
#
40724次浏览
377人参与
#
上班后,才发现大学__白学了
#
13785次浏览
100人参与
#
你找工作是从容有余 or 匆忙滚爬?
#
9828次浏览
85人参与
#
阿里云工作体验
#
33046次浏览
108人参与
#
你的领导最像哪种动物,为什么?
#
25418次浏览
136人参与
#
职场破冰,你们都聊什么?
#
30544次浏览
154人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务