Minimum indexes

You are given an array A of Q integers and Q queries. In each query, you are given an integer i (1iN).

Your task is to find the minimum index greater than i (1iN) such that:

  1. Sum of digits of Ai is greater than the sum of digits of Aj
  2. Ai < Aj

If there is no answer, then print -1

Example:

Input: size=5, arr[]={ 62, 70, 28, 62, 92 }
Output: 2

Approach

Java


public class MinimumIndexes {
    static int sumDigits(int in) {
        char[] arr = String.valueOf(in).toCharArray();
        int out = 0;
        for (char a : arr) {
            out += a - '0';
        }
        return out;
    }

    public static void main(String[] argsthrows Exception {
        int size = 5;
        int[] arr = { 6270286292 };
        int[] sumArr = new int[size];
        for (int i = 0; i < size; i++) {
            sumArr[i] = sumDigits(arr[i]);
        }
        int index = 1;
        int out = -1;
        for (int i = index - 1; i < size; i++) {
            if (arr[i] > arr[index - 1] && sumArr[i] < sumArr[index - 1]) {
                out = i + 1;
                break;
            }
        }
        System.out.println(out);

    }
}


No comments:

Post a Comment