Это домашнее заданиеКоличество уникальных элементов из массива
Я просто хочу, намеки на то, что ошибка. Я пытаюсь сравнить каждый элемент массива друг с другом и вернуть количество уникальных элементов. Я получаю сообщение об ошибке? Может ли кто-нибудь помочь мне найти ошибку?
public static int numUnique (double[] list) {
int index = 1;
int result = 0;
if(list.length == 0){return 0;}
while(index < list.length) {
if(list[index] != list[index - 1]) {
result = result + 1;
}
index++;
}
return result;
}
Выход:
Failed numUnique([11]): Expecting (1) Actual (0)
Failed numUnique([11 11 11 11]): Expecting (1) Actual (0)
Failed numUnique([11 21 31 41]): Expecting (4) Actual (3)
Failed numUnique([11 11 11 21 31 31 31 31 41]): Expecting (4) Actual (3)
Failed numUnique([11 21 21 21 31 41 41 41 41]): Expecting (4) Actual (3)
Failed numUnique([11 11 21 21 21 31 31 41 41 41 41]): Expecting (4) Actual (3)
Почему бы просто не инициализировать 'result' с 1 вместо if, если 0? – luk2302
О, это сработало! Но почему? –
Поскольку вы в основном считаете переход между разными значениями, количество переходов всегда меньше, чем количество разных значений. – luk2302