Проблема с этим кодом заключается в том, что он распечатает 5 9 9 вместо 5,9. Потому что в массиве есть третье. Что мне не хватает?Поиск дубликатов чисел в массиве
Редактировать: Мне нужно написать функцию, которая будет получать дубликаты из заданного массива. Я пытаюсь это сделать, но он печатает 5,9,9 вместо 5,9.
Редактировать 2: Ну, я понял это после чтения на HashSet и получил его для работы, используя приведенный ниже код. Надеюсь, это поможет другим людям с той же проблемой.
import java.util.HashSet;
public class Duplicator {
/**
* @param args
*/
public static void main(String[] args) {
int[] a = {3,5,5,8,9,9,9};
HashSet<Integer> hash = new HashSet<Integer>();
for(int i = 0; i < a.length; i++){
for(int j = i+1; j< a.length; j++){
if(a[i] == a[j]){
hash.add(a[i]);
}
}
}
System.out.println(hash);
}
}
Какой вопрос здесь Адам? – kuriouscoder
Многие из дубликатов этого в правой части экрана должны быть в состоянии помочь. –
Есть лучшие методы для этого. Этот код выглядит так, как будто O (n^2) хуже. Это не хорошо. Вы можете сделать это в O (n) раз, если вы просто продолжаете свертывание набора и проверяете его по мере продвижения по массиву. Также, если он всегда будет сортироваться, вы можете сделать это без дополнительных структур данных и по-прежнему сохранять O (n), просто отслеживать предыдущий индекс. – Franklin