- No, it's clear from problem description.
Input:
Output:
Input:
Output:
fun nextGreaterElements(nums: IntArray): IntArray {
val results = IntArray(nums.size) { _ -> -1 }
val stack = Stack<Int>()
for (i in 0 until nums.size * 2) {
val nextGreaterElement = nums[i % nums.size]
while (!stack.isEmpty() && nums[stack.peek()] < nextGreaterElement) {
results[stack.pop()] = nextGreaterElement
}
stack.push(i % nums.size)
}
return results
}