ЯВА: Что я делаю не так? - PullRequest
       31

ЯВА: Что я делаю не так?

0 голосов
/ 29 сентября 2019

Я пытаюсь определить расстояние Хемминга между двумя массивами целых.Предварительно: aList! = Null, bList! = Null, aList.length == bList.length;Post: вернуть расстояние Хэмминга между двумя массивами целых.Я не уверен, что я делаю неправильно, я только сейчас начинаю учиться кодировать.Любая помощь приветствуется.Заранее спасибо:)

Вот мой код:

public class test {

public static int hammingDistance(int[] aList, int[] bList) {
    // check preconditions
    if (aList == null || bList == null || aList.length != bList.length)
        throw new IllegalArgumentException("Violation of precondition: " +
            "hammingDistance. neither parameter may equal null, arrays" +
            " must be equal length.");
    //Starting a counter
    int counter = 0;
    System.out.println("test");
    //checking to see if there is a mismatch in the values of the two given arrays
    for (int i = 0; i < bList.length; i++) {
        if (bList[i] != aList[i]) {
            //increasing counter everytime there is a mismatch
            counter++;
        }
    }
    return counter;
}

public static void main(String[] args) {
    int[] aList = { 1,3,3,4 };
    int[] bList = { 1,2,10,4 };
    System.out.println(hammingDistance(aList, bList));
}

}

Обновлен код

Ответы [ 2 ]

2 голосов
/ 29 сентября 2019

Вы сбрасываете счетчик на ноль всякий раз, когда происходит совпадение.Так что счетчик никогда не эффективен.Удалите остальную часть кода.

0 голосов
/ 29 сентября 2019

Вы сбрасываете counter, когда два элемента равны (см. Ваше утверждение else).Вы не должны ничего делать, когда два колла равны.

Надеюсь, это поможет,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...