package nextgreaterelement; import java.util.Arrays; import java.util.Stack; public class app { public static void main(String[] args) { int arr[] = {1, 2, 4, 8, 6, 10}; System.out.println(Arrays.toString(nextGreater(arr))); } static int[] nextGreater(int arr[]) { Stack stack = new Stack<>(); stack.push(arr[arr.length-1]); int a[] = new int[arr.length]; a[arr.length-1] = -1; for (int i = arr.length-2; i >= 0; i--) { while (!stack.isEmpty() && stack.peek() <= arr[i]) { stack.pop(); } if (stack.isEmpty()) a[i] = -1; else a[i] = stack.peek(); stack.push(arr[i]); } return a; } } //Output: // 2 4 8 10 10 -1