Challenge: Next Greater Element Using Stack
Can you implement a method to find the next greater element after any given element from the stack? A solution is placed in the "solution" section to help you, but we would suggest you try to solve it on your own first.
We'll cover the following
Problem Statement #
In this problem, you have to implement int[] nextGreaterElement(int[] arr)
method. For each element in an array, it finds the next greater element in that array.
Note: The next greater element is the first element towards the right, which is greater than the current element. For example, in the array [1, 3, 8, 4, 10, 5], the next greater element of 3 is 8, and the next greater element for 8 is 10. To keep it simple, the next greater element for the last or maximum value in the array is
-1
.
In each iteration, we only check the array elements appearing after the current element.
Method Prototype #
int[] nextGreaterElement(int[] arr);
where arr is an Integer array
Input #
The input is an integer array
Output #
An array containing the next greater element of each element from the input array. For the maximum value in the array, the next greater value is -1
.
Sample Input #
arr = {4,6,3,2,8,1}
Sample Output #
result = {6,8,8,8,-1,-1}
Level up your interview prep. Join Educative to access 70+ hands-on prep courses.