【发布时间】:2016-03-23 22:43:25
【问题描述】:
以前有一些帖子可以解决这个问题,但他们提供了右边的第一个下一个大元素而不是右边的下一个大元素的解决方案。
假设输入数组为[4, 15, 2, 9, 20, 11, 13 ,16 ,3]
右边输出的下一个大元素是
4 -> 9 ,
15 -> 16 ,
2->3 ,
9->11 ,
20->-1 ,
11->13 ,
13->16 ,
16->-1 ,
3->-1 ,
第一个下一个更大的元素输出就像
4->15 ,
15->20 ,
2->9 ,
9->20 ,
20->-1
11->13
13-> 16
16-> -1
3-> -1
我希望你们能理解其中的区别。
几乎所有在线资源[据我所知]都为第二种情况提供了解决方案。
我希望以乐观的方式解决第一种情况的解决方案[算法] [
任何类型的数据结构都适合我。
提前致谢。
【问题讨论】:
-
如果输入 case 包含 [12, 11,13] ,排序将导致 [11,12,13 ] 。所以答案是 12 但实际上是 13 [右边的下一个更大的元素]
-
对,排序解决不了问题。我的错。
标签: arrays algorithm data-structures stack logic