이 코드의 문제점은 단지 5,9 대신 5 9 9를 인쇄한다는 것입니다. 배열에 세 번째 9가 있기 때문입니다. 내가 뭘 놓치고 있니?배열의 중복 번호 찾기
편집 : 제공된 배열에서 중복을 가져올 함수를 작성해야합니다. 나는 이것을하려고 노력하고있다. 그러나 그것은 5,9 대신 5,9,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