У меня возникли проблемы с поиском алгоритма, который найдет различия между двумя целыми массивами. У меня уже есть метод сортировки, чтобы он пробежал, так что числа находятся в порядке возрастания.Найти разницу между двумя массивами int
Например:
SetX = {1, 2, 3, 4, 5}
SetY = {0, 2, 4, 6}
Возвращение должны быть номера в SetX, которые не отображаются в SetY.
так Resultset = {1, 3, 5}
Иногда я получаю правильный ответ, если я делать небольшие массивы, но если я делаю массивы, которые являются 4 или более Целые долго это дает мне неправильный возврат.
Может ли кто-нибудь просмотреть мой код и рассказать мне, что я делаю неправильно?
public static int firstFruit(int[] setX, int usedSizeSetX, int[] setY, int usedSizeSet2, int[] resultSet) {
int a = 0, b = 0, c = 0;
while(a < usedSizeSetX && b < usedSizeSetY){
if(setX[a] == setY[b]) {
a++;
} else if(setX[a] == setY[b]){
b++;
} else {
resultSet[c++] = setX[a++];
b++;
}
}
return c;
}
Можете ли вы привести несколько примеров ввода, где он дает неправильный ответ? – BretC
ваши первые две проверки в точности совпадают. Вы никогда не столкнетесь со вторым условным ... – jgitter
[Здесь] (https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html) есть список всех методы, предлагаемые классом ** Array **. Для каждого элемента в одном массиве вы можете использовать binsearch, чтобы найти, появляется ли он в другом массиве. –