一、题目描述
一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了抢到集团的藏宝地,藏宝地有编号从0-N的箱子,每个箱子上面有一个数字,箱子排列成一个环,编号最大的箱子的下一个是编号为0的箱子。
请输出每个箱子贴的数字之后的第一个比它大的数,如果不存在则输出-1。
二、输入描述
输入一个数字子串,数字之间使用逗号分隔,例如:1,2,3,1
1 <= 子串中数字个数 <= 10000;
-100000 <= 每个数字值 <= 100000;
三、输出描述
下一个大的数列表,以逗号分隔,例如:2,3,6,-1,6
四、测试用例
测试用例1:
1、输入
1,2,3,4,5
2、输出
2,3,4,5,-1
3、说明
1 的下一个大数是 2。
2 的下一个大数是 3。
3 的下一个大数是 4。
4 的下一个大数是 5。
5 没有比它大的数,输出 -1。
测试用例2:
1、输入
1,3,2,4,6,5
本文介绍了如何通过单调栈解决华为在线开发者(OD)机试中的一道题目——阿里巴巴找黄金宝箱。题目要求在循环数组中找出每个数字之后的第一个比它大的数,若不存在则输出-1。解题思路和Java算法源码详细阐述了利用单调栈进行求解的过程,同时分析了时间复杂度和空间复杂度。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



