Question 3 Next Greater Element III
Last updated
Last updated
// Some code
public int secondGreaterElement(int[] array) {
int[] result = new int[array.length];
Arrays.fill(result, -1);
Dequeue<Integer> stack1 = new ArrayDeque<>();
Dequeue<Integer> stack2 = new ArrayDeque<>();
Dequeue<Integer> temp = new ArrayDeque<>();
for (int i = 0; i < array.length; i++) {
while (!stack2.isEmpty() && array[stack2.peekLast()] < array[i]) {
result[stack2.pollLast()] = array[i];
}
while (!stack1.isEmpty() && array[stack.peekLast()] < array[i]) {
stack2.offerLast(temp.pollLast());
}
stack1.offerLast(array[i]);
}
return result;
}