首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-04 17:22
已编辑
兰州大学 C++
某量化1面
各种拷打项目,由于和之前实习岗位挺类似的,拷打的很细 C++中,unordered_map和普通的map有什么区别? unordered_map什么时候触发扩容(rehash)?解决哈希冲突的算法是什么? 首先明确哈希的本质目标——将键(key)快速映射到存储位置(数组索引)。实现步骤可分为四层: (1)定义键值对结构; (2)设计哈希函数,将key转为非负整数索引; (3)处理哈希冲突(多个key映射到同一索引); (4)当负载因子(load factor = 元素数 / 数组长度)超过阈值(如0.75)时,触发扩容与重哈希(rehashing),保证性能稳定。 重哈希的过程(以链...
查看9道真题和解析
点赞
评论
收藏
分享
05-07 17:43
四川大学 Java
4.24腾讯pcg后台一面--已凉
上来是手撕一道找链表的中间节点 一道lru 总共撕了1h 第一道有点错找了一会然后两个项目是纯后端的 问我有没有做过ai相关的 我说最近在做一个agent智能体 然后问了我流式输出的原理 rag mcp感觉鹅已经全面拥抱ai了 没有单纯的后端开发了 还是太菜了没有好好准备ai相关的内容+手撕时间太长了
查看7道真题和解析
点赞
评论
收藏
分享
03-17 15:30
西安电子科技大学 嵌入式软件开发
嵌入式找实习简历求拷打
有个疑问,我的简历是不是太杂了,mcurtos Linux应用 驱动 内核 zynq都涉及一点,我以后想走驱动或者内核
点赞
评论
收藏
分享
04-08 12:19
天津工业大学 产品经理
Token排行榜。。。
国内这个AI风气太夸张了吧,大家公司内部全部都用AI吗?实习生也能畅用吗?
牛客63981766...:
给龙虾一个固定任务,每天出去逛一圈收集消息,token就上来了
点赞
评论
收藏
分享
05-04 15:56
华为_系统工程师
第 56 题:OpenAI GPTs、LangChain Templates、LlamaIndex
第 56 题:OpenAI GPTs、LangChain Templates、LlamaIndex 的提示管理方式 题目 对比 OpenAI 的 GPTs、LangChain Templates、LlamaIndex 的提示管理方式。 一、OpenAI GPTs 方式:在 GPT 创建/编辑界面中配置 Instructions(系统级 prompt)、Conversation starters、可选 Knowledge 上传;支持多轮对话与 Function Calling。提示以“配置项”形式存在,版本随 GPT 保存,可在网页端迭代;不支持代码内细粒度版本与 A/B。 特点:产品化、低代码...
查看1道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
毕业啦!我们要一起去广州打拼啦!
1.7W
2
...
毕业了,有些话只能藏在心里了
1.6W
3
...
2026春招到底卷成什么样了?填问卷说出真相,最高领200元现金红包
1.3W
4
...
字节 中国交易与广告 后端一面
1.0W
5
...
从阿里被裁到快手升P6,我花了四年
8710
6
...
211本,130投0面,agent应用开发,简历求助!
8167
7
...
别人:阿里 字节 腾讯
7204
8
...
在携程的一天
6472
9
...
从腾讯到阿里感,谢一路走来的自己
5624
10
...
华为暑期实习
5150
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
32195次浏览
232人参与
#
校招薪资来揭秘
#
961046次浏览
4063人参与
#
在爱玛,骑向未来
#
20499次浏览
395人参与
#
如果春招能重来,我会___
#
29722次浏览
296人参与
#
24秋招避雷总结
#
1020384次浏览
7098人参与
#
你会因为行情,降低找工作标准吗?
#
45569次浏览
333人参与
#
机械人还在等华为开奖吗?
#
339306次浏览
1652人参与
#
米哈游求职进展汇总
#
688814次浏览
3348人参与
#
华为池子有多大
#
178217次浏览
931人参与
#
26届春招投递记录
#
8761次浏览
72人参与
#
25届网易互娱暑实进度
#
109137次浏览
802人参与
#
通信/硬件求职避坑tips
#
172147次浏览
1170人参与
#
记录我的毕业季
#
4845次浏览
120人参与
#
机械人,你的秋招第一份简历被谁挂了
#
268851次浏览
2451人参与
#
远程面试的尴尬瞬间
#
363963次浏览
2062人参与
#
大学最后一个寒假,我想……
#
103339次浏览
846人参与
#
机械求职避坑tips
#
103734次浏览
589人参与
#
你认为小厂实习有用吗?
#
145120次浏览
763人参与
#
运营商笔面经互助
#
219706次浏览
1833人参与
#
美团秋招笔试
#
216484次浏览
1192人参与
#
网易求职进展汇总
#
213220次浏览
1524人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务