Untitled

 avatar
unknown
plain_text
3 years ago
1.0 kB
5
Indexable
package test;

import java.util.Scanner;

public class Solution {
    public static int[] findClosest(int[] arr, int n) {
        int res[] = new int[n];
        res[n - 1] = -1;

        for (int i = n - 2; i >= 0; i--) {
            int j = i + 1;
            while (j != -1 && arr[j] > arr[i]) {
                j = res[j];
            }

            res[i] = j;
        }

        for (int i = 0; i < n; i++) {
            if (res[i] != -1) {
                res[i] = arr[res[i]];
            }
        }

        return res;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int arr[] = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        sc.close();
        int res[] = findClosest(arr, n);
        for (int i = 0; i < n; i++) {
            System.out.print(res[i] + " ");
        }
        System.out.println();
    }
}
Editor is loading...