首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
02-16 11:37
迅雷_后端开发工程师(准入职员工)
迅雷内推-迅雷内推码
迅雷ai产运面试经验分享(已offer)迅雷一共四轮面,分别是笔试—业务面—老板面—hr面,这个岗是针对迅雷旗下一款ai女性向陪伴类游戏的产品运营,主要是社群建立与维护,建议大家面试之前多去了解一些社群运营的方法论以及紧急公关的处理方式。时间线:12.4笔试—12.5反馈笔试通过—12.9一面—12.9二面(当天两轮)—12.11三面—12.13 offer一面:主要是考察对岗位jd的了解以及公关能力。1,做个自我介绍2,游戏经历,平时喜欢什么游戏,玩到什么等级?3,有玩过女性向游戏吗?举个例子,你认为女性向游戏的受众是怎么样的?4,现在给你一个社群运营,你会怎么做好?5,假如李泽言和白起的粉...
点赞
评论
收藏
分享
02-16 11:46
九州通医药集团_集团业务管培生(准入职员工)
步步高内推,步步高内推码
步步高实验学校 2026届校招启动啦【学校简介】东莞市步步高实验学校于 2023 年投入运营,占地 230 亩,是一所集幼儿园、小学、初中、高中于一体的十五年一贯制非营利性高端民办学校,学校全面实行小班化教学,学校师生比为 1:5;步步高教育专家团队由来自一流大学的国家课标专家、教育学家,来自著名学校的卓越校长,来自一线、有着丰富教学经验的著名特级教师,以及来自国家级教育媒体的教育策划专家共同组成,为步步高的课程、教学、管理奠定了坚实基础。【招聘岗位】• 幼儿园、小学部及初中部各学科类教师 & 国际教师,类别多多,等你pick! 【福利待遇】• 薪资:幼儿园老师年收入16万起 、中小学...
点赞
评论
收藏
分享
01-23 15:22
惠州学院 golang
27届学院本简历求锐评
各位大佬帮忙看看,最后一个是个人项目,要不要删
点赞
评论
收藏
分享
02-13 11:30
字节跳动_TikTokShop_HR-TA(实习员工)
到底有没有27届同学愿意来字节。。。
真的很多hc很缺人!!!北上杭深 前后客户端hc多多27届同学请用简历猛砸我
Akggg:
年后沉淀好给你投
点赞
评论
收藏
分享
02-16 11:46
三环集团_后端开发工程师(准入职员工)
网易互娱内推,网易互娱内推码
网易游戏-蛋仔派对-数据分析-已复盘自我介绍,重点讲讲你为什么想来游戏行业做一名数据分析师。某天发现《蛋仔派对》的日活跃用户比前一天断崖式下跌了 20%,如果交给你来分析,你的分析思路是什么?会从哪些方面入手排查原因?我们想通过优化新手教程来提升新用户的次日留存率,你会如何设计一个 A/B 实验来验证这个想法?在设计和分析过程中,需要特别注意哪些潜在的问题?你最近玩得最久或者最喜欢的游戏?你认为它在设计上最成功的一点是什么?如果让你用数据来证明你的观点,你会关注哪些数据?我们有一张玩家登录日志表(包含 user_id, login_time),请你说说计算次日留存率的 SQL 思路是怎样的?《...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
774
2
...
关于租房
375
3
...
HTTP 和 HTTPS 区别
368
4
...
27届实习近一年的年度经历和总结
355
5
...
agent实习都干什么?prompt设计
262
6
...
得力嵌入式工程师 二面 面经
206
7
...
美团推荐算法一面
203
8
...
27前端双非找实习
182
9
...
大三无实习
178
10
...
Redis 的 Zset底层是怎么实现的?
174
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
13658次浏览
166人参与
#
牛友们,签完三方你在忙什么?
#
137342次浏览
993人参与
#
牛客AI体验站
#
17829次浏览
302人参与
#
担心入职之后被发现很菜怎么办
#
282442次浏览
1185人参与
#
如何缓解入职前的焦虑
#
258810次浏览
1451人参与
#
牛客租房专区
#
151280次浏览
1477人参与
#
秋招开始捡漏了吗
#
229438次浏览
1044人参与
#
秋招投递攻略
#
268759次浏览
2553人参与
#
九月了,是考研还是就业?
#
89145次浏览
556人参与
#
校招第一份工作你干了多久?
#
139334次浏览
609人参与
#
搜狐工作体验
#
4109次浏览
29人参与
#
机械人求职现状
#
33616次浏览
297人参与
#
我是XXX,请攻击我最薄弱的地方
#
61745次浏览
409人参与
#
用友工作体验
#
18075次浏览
151人参与
#
你的实习什么时候入职
#
348049次浏览
2291人参与
#
今年秋招还有金九银十吗
#
75077次浏览
506人参与
#
机械人的offer怎么选
#
252631次浏览
1189人参与
#
校招谈薪技巧
#
129601次浏览
1357人参与
#
AI了,我在打一种很新的工
#
140471次浏览
1384人参与
#
这份实习,有没有动摇过你的职业方向?
#
1999次浏览
28人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务