public static int getUniqueValues(int... array) {
int count = 0;
label1:
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++)
if (array[i] == array[j])
continue label1;
count++;
}
return ++count;
}
Не очень люблю когда готовое решение всплывает само по себе во время обучения. Я не могу понять зачем в конце надо еще раз увеличить на единицу count. А все у меня длина на -1 в первом форе…
Стоп так что не правильно?
допустим есть массив: [-2, 0, 6, 7, 7, -1, -3, 2, -3]
у него уникальных чисел [-2, 0, 6, 7, -1, 2, -3] = 7
но различных чисел [-2, 0, 6, -1, 2] = 5
Так 5 или 7 надо выводить? Или переведите пожалуйста условие задачи, а то в моей палате одни Наполеоны собрались.
public static int getUniqueValues(int...arr)
{
if (arr.length == 0)
throw new IllegalArgumentException("empty array");
if (arr.length == 1)
return 1;
Arrays.sort(arr);
int res = 1;
for (int i = 1; i < arr.length; i++)
if (arr[i] != arr[i - 1])
res++;
return res;
}
public static int getUniqueValues(int...arr)
{
if (arr.length == 0)
throw new IllegalArgumentException("empty array");
if (arr.length == 1)
return 1;
Arrays.sort(arr);
int res = 0;
for (int i = 1; i < arr.length; i++)
if (arr[i] != arr[i - 1])
res++;
if (arr[0] != arr[1])
res++;
return res;
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
допустим есть массив: [-2, 0, 6, 7, 7, -1, -3, 2, -3]
у него уникальных чисел [-2, 0, 6, 7, -1, 2, -3] = 7
но различных чисел [-2, 0, 6, -1, 2] = 5
Так 5 или 7 надо выводить? Или переведите пожалуйста условие задачи, а то в моей палате одни Наполеоны собрались.