Я не могу правильно запустить все мои тесты, что не так? - PullRequest
0 голосов
/ 23 декабря 2018

Завершите функцию divisibleSumPairs в редакторе ниже.Он должен возвращать целое число пар, соответствующих критериям.

divisibleSumPairs имеет следующие параметры:

  • n : целая длина массива ar

  • ar : массив целых чисел

  • k : целое число, чтобы разделить сумму пары на

Вывести число пар (i, j) , где i и ar [i] + ar [j] равномерно делится на k .

Я не знаю, что не так, только некоторыедела сработали

  static int divisibleSumPairs(int n, int k, int[] ar) {
    int count = 0;
    for (int i=0; i<n; i++){
        for (int j=0; j<n; j++){
            if ((ar[i]<ar[j]) && ((ar[i]+ar[j])%k)== 0){
                count++;
            }
        }
    }
        return count;
}

1 Ответ

0 голосов
/ 23 декабря 2018

Основная проблема заключается в том, что вы проверяете ar [i] , в то время как в заявлении о проблеме говорится i :

static int divisibleSumPairs(int n, int k, int[] ar) {
    int count = 0;
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            if (i < j && (ar[i] + ar[j]) % k == 0) {
                count++;
            }
        }
    }
    return count;
}

Алгоритм может быть дополнительно оптимизирован до:

static int divisibleSumPairs(int n, int k, int[] ar) {
    int count = 0;
    for (int i = 0; i < n; i++){
        for (int j = i + 1; j < n; j++){
            if ((ar[i] + ar[j]) % k == 0) {
                count++;
            }
        }
    }
    return count;
}
...