Fork me on GitHub

09. 单调递增栈

正文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
fun monotonicStack(nums: IntArray): IntArray {
val stack = mutableListOf<Int>()
val result = IntArray(nums.size) { -1 }

for (i in nums.indices) {
while (stack.isNotEmpty() && stack.last() < nums[i]) {
stack.removeAt(stack.size - 1)
}

// 在这里可以根据题目需求进行处理
// 例如:找到栈中元素的下一个更大元素
if (stack.isNotEmpty()) {
result[i] = stack.last()
}

stack.add(nums[i])
}

return result
}
,