AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2653. 找黄金宝箱(4)

中等通过率 73% · 提交 411 · 通过 301
单调栈模拟

小慕在整理一份形排列的项目数据时,遇到了一个棘手的问题。项目中有编号从 0 到 N 的节点,每个节点上记录着一个数值,这些节点按顺序围成一个环,编号最大的节点的下一个节点是编号为 0 的节点。现在,小慕需要找出每个节点数值之后出现的第一个比它大的数值,如果不存在这样的数值,则输出 -1。

提示:带虚线的词点一下有通俗解释。

输入描述

输入一个数字字串,数字之间使用逗号分隔,例如: 1,2,3,1;1 ≤ 字串中数字个数 ≤ 10000;-100000≤ 每个数字值 ≤100000

输出描述

下一个大的数列表,以逗号分隔,例如: 2,3,6,-1,6

示例

示例 1

输入

2,5,2

输出

5,-1,5

说明:第一个 2 的下一个更大的数是 5 数字 5 找不到下一个更大的数 第二个 2 的下一个最大的数需要循环搜索,结果也是 5

示例 2

输入

3,4,5,6,3

输出

4,5,6,-1,4

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
2 5 2 箱子0:2 箱子1:5 箱子2:2 下一个更大:5 循环找到下一个更大:5 环形下一个更大元素示例
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「找黄金宝箱(4)」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。