首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
新一一
内蒙古工业大学 Java
发布于内蒙古
关注
已关注
取消关注
@code5bug:
转盘寿司 - 华为OD统一考试(D卷)
OD统一考试(D卷)分值: 100分题解: Java / Python / C++题目描述寿司店周年庆,正在举办优惠活动回馈新老用户。寿司转盘上总共有 n 盘寿司, prices[i] 是第 i 盘寿司的价格。如果客户选择了第 i 盘寿司, 寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j ,前提是 prices[j] < prices[i],如果没有满足条件的 i ,则不赠送寿司。每个价格的寿司都可无限供应。输入描述输入的每一个数字代表寿司的价格,每盘寿司的价格之间使用空格分隔,例如:3 15 6 14表示:第 0 盘寿司价格 prices[0] 为 3第 1 盘寿司价格 prices[1] 为 15第 2 盘寿司价格 prices[2] 为 6第 3 盘寿司价格 prices[3] 为 14寿司的盘数 n 范围为:1 ≤ n ≤ 500每盘寿司的价格 price 范围为:1≤ price ≤1000输出描述输出享受优惠后的一组数据,每个值表示客户端选择第 i 盘寿司实际得到的寿司的总价格,使用空格进行分隔,例如:3 21 9 17示例1输入:3 15 6 14输出:3 21 9 17题解单调栈是一种特殊的栈数据结构,用于解决一类与找下一个更大或更小元素相关的问题。在这个问题中,我们使用单调递减栈。单调栈的基本思想是,维护一个栈,使得栈内的元素保持单调递减(或单调递增)。当新元素要入栈时,我们需要弹出栈内所有比该元素小的元素,以确保栈的单调性。这样,在栈中,每个元素的下一个更小(或更大)的元素就是它本身。在这个问题中,我们用单调递减栈来维护右边第一个价格比当前寿司价格小的寿司位置。算法的步骤如下:初始化一个空栈 st 和一个数组 gift,其中 gift[i] 表示免费赠送寿司价格,默认为 0。从左到右遍历两倍的寿司列表,记当前索引为 idx。如果栈 st 不为空且当前寿司价格 prices[idx] 小于栈顶寿司价格 prices[st.top()],则出栈,维护免费赠送寿司价格。将当前索引 idx 入栈。遍历结束后,gift[i] 就是每盘寿司实际免费得到赠送寿司的价格。然后打印输出每盘寿司实际得到的寿司的总价格即可。Javaimport java.util.*;/** * @author code5bug */public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List<Integer> prices = new ArrayList<>(); while (scanner.hasNextInt()) { prices.add(scanner.nextInt()); } int n = prices.size(); // gift[i] 表示免费赠送寿司价格 int[] gift = new int[n]; // 大顶栈 Deque<Integer> st = new ArrayDeque<Integer>(); for (int i = 0; i < 2 * n; i++) { int idx = i % n; // 当前价格小于栈顶价格时则出栈, 并维护免费赠送寿司价格 while (!st.isEmpty() && prices.get(st.peek()) > prices.get(idx)) { int popIdx = st.pop(); if (gift[popIdx] == 0) { gift[popIdx] = prices.get(idx); } } st.push(idx); } for (int i = 0; i < n; i++) { System.out.print((prices.get(i) + gift[i]) + " "); } }}Pythonfrom collections import dequeprices = list(map(int, input().split()))n = len(prices)# gift[i] 表示免费赠送寿司价格gift = [0] * n# 大顶栈st = deque()for i in range(2 * n): idx = i % n # 当前价格小于栈顶价格时则出栈, 并维护免费赠送寿司价格 while st and prices[st[-1]] > prices[idx]: pop_idx = st.pop() if gift[pop_idx] == 0: gift[pop_idx] = prices[idx] st.append(idx)for i in range(n): print(prices[i] + gift[i], end=" ")C++#include <iostream>#include <vector>#include <stack>using namespace std;int main() { vector<int> prices; int price; while(cin >> price) { prices.push_back(price); } int n = prices.size(); // gift[i] 表示免费赠送寿司价格 vector<int> gift(n, 0); // 大顶栈 stack<int> st; for(int i = 0; i < 2 * n; i++) { int idx = i % n; // 当前价格小于栈顶价格时则出栈, 并维护免费赠送寿司价格 while(!st.empty() && prices[st.top()] > prices[idx]) { int pop_idx = st.top(); if(gift[pop_idx] == 0) { gift[pop_idx] = prices[idx]; } st.pop(); } st.push(idx); } for(int i = 0; i < n; i++) { cout << prices[i] + gift[i] << " "; } return 0;}相关练习题🙏整理题解不易, 如果有帮助到您,请给点个赞 ❤️ 和收藏 ⭐,让更多的人看到。🙏🙏🙏
点赞 6
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 20:34
阿里巴巴_Java开发工程师
从阿里被裁到快手升P6,我花了四年
520那天晚上,公司正在为618忙得热火朝天,我却一个人坐在会议室里哭01 少年心事当拿云我本科是电气工程专业,19年跨考了计算机,靠着小公司实习的跳板,21年面进了阿里的暑期实习。实习入职给我的评级是B,不过做了三个月之后,实习转正答辩也不错,结果当天就给我的评级提到了A,22年正式入职。就这样到了23年上半年,接了个大项目,是对我个人能力提升巨大的一个项目,跟在组里的一个资深的P7后面做,跨了三个事业群去推动一件事情,他负责统筹协调,我负责技术实现,学习到了很多相关技巧,很多横向合作的能力都是在这里练出来的。这个时候我觉得我好像还可以,在大团队的同期里面应该算是比较靠前的,两年升P6应该是...
点赞
评论
收藏
分享
05-02 21:34
蚌埠坦克学院 嵌入式软件开发
如果春招能重来,我会多投几个简历
如果春招能重来,我会更主动一些,多投几份简历,而不是把机会压在少数几家公司上。很多时候,并不是能力不够,而是曝光太少、尝试不够。多投递不仅能增加面试机会,也能在不断反馈中调整方向、提升表现。回头看,求职本身就是一个不断试错的过程,机会往往藏在“多尝试一步”里。
如果春招能重来,我会__...
点赞
评论
收藏
分享
04-22 20:47
西安电子科技大学 Java
被学校发现实习被迫终止
友友们,本来在一个做自动驾驶的大厂实习,但因为长时间没刷宿舍门禁刷脸被导员发现,后面被拷问出来在实习后也是迫于压力离职了。但是我争取了一下,公司那边说是如果暑假还有hc的话我可以继续入职。但是只是口头承诺,我很焦虑到时候一句没有hc了就炸了(暑期目前只有一个小厂offer,四月才开始投,两个月生疏八股算法,感觉拿别的大厂暑期实习无望了) 友友们有什么建议吗?比如我要不要持续跟hr聊天来增加些好感度之类的?
XingHaozhe:
改变命运的机会就这么多,能不能顶住别人的阻挠与质疑也是对我们人生的考验
点赞
评论
收藏
分享
04-18 23:00
湖南人文科技学院 Java
春招没上岸,只有一个面试,想问问大家双非学院本JAVA的行情怎么样
你已经投递多少份简历了
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
27实习宇树科技AI agent开发二面
2.0W
2
...
学院本拿下字节暑期offer!!!
6406
3
...
快手后端一面面经
4868
4
...
宇树科技实习AI agent开发一面分享
4813
5
...
agent开发是测试的最好转型期
4484
6
...
一位小镇做题家的自白
4351
7
...
后端开发简历求拷打
4000
8
...
至今,暑假实习0offer
3227
9
...
面试真题】美团Agent 方向面经整理
2882
10
...
27届UE游戏客户端暑期结束力,小小地做个总结吧
2334
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
23075次浏览
187人参与
#
上班苦还是上学苦呢?
#
345693次浏览
2073人参与
#
联宝杯大学生创新大赛,你的技术值得产业级答案
#
48167次浏览
521人参与
#
如果春招能重来,我会___
#
23336次浏览
246人参与
#
实习怎么做才有更好的产出
#
50188次浏览
458人参与
#
你会因为行情,降低找工作标准吗?
#
36204次浏览
296人参与
#
在爱玛,骑向未来
#
14732次浏览
333人参与
#
字节开奖
#
153197次浏览
711人参与
#
我的秋招“寄”录
#
476636次浏览
3064人参与
#
面试线索爆料
#
131123次浏览
706人参与
#
提名点击就挂的公司
#
144363次浏览
492人参与
#
刚入职就____,这样正常吗?
#
143675次浏览
691人参与
#
AI coding的好用工具分享
#
88665次浏览
567人参与
#
字节求职进展汇总
#
1851083次浏览
15434人参与
#
找工作以来,你最看不惯__
#
79545次浏览
594人参与
#
大学四年该怎么过,才不算浪费时间?
#
23982次浏览
107人参与
#
硬件人秋招的第一个offer
#
129166次浏览
1473人参与
#
AI“智障”时刻
#
40505次浏览
195人参与
#
业务面应该做哪些准备
#
128215次浏览
1345人参与
#
双非本科求职如何逆袭
#
1651458次浏览
13097人参与
#
双非应该如何逆袭?
#
588779次浏览
6409人参与
#
制造业的秋招小结
#
157477次浏览
2136人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务