Untitled

 avatar
user_0781376
plain_text
4 days ago
925 B
50
Indexable
package Day2;

import java.util.Stack;

public class NextGreaterElement {
    public static void findNextGreaterElement(int[] arr) {
        Stack<Integer> stack = new Stack<>();
        int n = arr.length;
        int[] nge = new int[n];

        // Traverse from right to left
        for (int i = n - 1; i >= 0; i--) {
            while (!stack.isEmpty() && stack.peek() <= arr[i]) 
            {
                stack.pop(); // Remove smaller elements
            }
            nge[i] = stack.isEmpty() ? -1 : stack.peek(); // Assign NGE or -1
            stack.push(arr[i]); // Push current element to stack
        }

        // Print the results
        for (int i = 0; i < n; i++) {
            System.out.println(arr[i] + " --> " + nge[i]);
        }
    }

    public static void main(String[] args) {
        int[] arr = {4, 5, 2, 25};
        findNextGreaterElement(arr);
    }
}

Editor is loading...
Leave a Comment