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 }
|