Всех приветствую, у меня такой вопрос, если у меня массив с почти всеми одинаковыми числами, например, 17 и одним каким-то другим, например, c 3, ({17,17,3,17,17,17}) то как мне вывести число которое отличается от всех на экран? Я могу это сделать если знаю конкретное место нахождения числа, которое отличается или числа, которое со всеми одинаковое, но если число будет записано рандомно, то нет..
П.C. Прошу не применять автоматические методы по поиску в массиве, т.к. моя цель научиться правильно делать алгоритмы и думать, а не запускать уже готовое. Любая идея тоже сгодится. Спасибо
Предлагаю следующий алгоритм:
int повторяется;
int[] nums = {1, 1, 2, 1, 1, 1};
if(nums.length <= 2) {
throw new IllegalArgumentException();
}
if(nums[0] == nums[1] || nums[0] == nums[2]) {
повторяется = nums[0];
} else {
повторяется = nums[1];
}
int index = -1;
for(int i = 0; i < nums.length; i++) {
if(nums[i] != повторяется) {
index = i;
break;
}
}
if(index == -1) {
System.err.println("Все элементы массива идентичны");
} else {
System.out.println("Индекс элемента - " + index);
}
Проверку на то, один ли он в массиве, можете добавить сами, введя новую переменную.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей