Страницы

Поиск по вопросам

среда, 22 мая 2019 г.

найти количество уникальных чисел в массиве java

Напишите метод uniqueCount, который будет находить количество уникальных чисел в массиве. Если число повторяется больше одного раза, то его стоит учитывать, но только один раз. Длина массива > 0.
Пример:
Входящие данные {11, 12, 10, 5, 4, 44, 100, 44, 11, 10, 11} Ответ 7 Объяснение Массив без повторений будет выглядеть 4, 5, 10, 11, 12, 44, 100 - длина 7.
Помогите с решением задачи.
Мой вариант:
public static void main(String[] args) { int[] array = {11, 12, 10, 5, 4, 44, 100, 44, 11, 10, 11, 3}; System.out.println(uniqueCount(array)); }
static int uniqueCount(int[] array) { int result = 0; int countUnique = 0; int count = 0; for (int i = 0; i < array.length; i++) { countUnique++; for (int j = i + 1; j < array.length; j++) { if (array[j] == array[i]) { count++; } } } return result = countUnique - count; }
Но ответ на единицу меньше, чем должен быть. Не понимаю где ошибка моя. Наверное неправильно задаю j, откуда начинать сравнивать элементы.


Ответ

Ваш алгоритм не учитывает, что числа могут повторяться больше, чем два раза - 11 в Вашем случае.
for (int j = i+1; j < array.length; j++) { if (array[j] == array[i]) { count++; break; } }

Комментариев нет:

Отправить комментарий