- 배열이 주어 배열이 포함되어 있는지 여부를 판정한다. 중복의 모든 배열 요소의 출력 경우, true를 반환하지 false를 반환합니다.
- 예는 숫자의 배열로 출력 [2,3,5]는 true를 돌려
INT [] 번호 = {1,3,4,5,5,3,2,3,2,2,2};
1. 아이디어
인접한 비교 하였다 이제 정렬 (또는 내림차순) 오름차순 두 따라 배열 요소 수는, 동일한 두 요소 경우, 소자는 배열 복제에 기억 된 반복 하였다.
이 참고가 복수있는 경우 (3 개 이상) 같은 이웃 반복 배열 요소 중복도 발생하는 경우에도 같은 인접하는 4 개 개의 소자 (2) {2,2,2,2}, 이전 연습에 따르면, 중복 배열 (세 개의 연속적인 비교 결과가 동일하기 때문에) 세 2, 제목이 수요를 충족하지 않는 것입니다.
이 버그이 (현재 블로거 만이 생각할 수) 주위 가지 방법이 있습니다 :
1) 연속 번호 비교 현재 반복 요소 배열을 중복할지 여부를 결정한다. 다음과 같은 아이디어는 다음과 같습니다
비교 INT 카운트 = 0;
대한 (....... 분류 배열 번호를 통과 한 후 .....) {
경우 (배열 요소에 == 현재의 배열 요소)
임시 ++;
경우 (1 == 만약 비교의 수)
중복 배열에 현재 반복 요소;
그밖에
= 0 비교의 수;
}
고유 요소 - 2) 특징 세트를 이용하여 설정한다. 다음과 같이 간단한 아이디어는
세트에 추가 정렬 배열 번호를 통해 통과하는 경우 (다음 == 현재의 배열 요소의 배열 요소 && 설정된 현재의 배열 요소를 포함하지 않음) 소자 만족하면서 세트는 오브젝트의 세트를 정의
2의 참조 코드
1 수입 하고있는 java.util. * ; 2 3 공용 클래스 TEST { 4 공공 정적 무효 메인 (문자열 []에 args) { 5 TEST에서 t = 새로운 TEST (); 6 INT [] 번호 = {1,3,4,5,5,3,2,3,2,2,2 }; 7 INT [] = DUP 새로운 INT [numbers.length / 2 + 1 ]; 8 구 에서 System.out.println ( "原번호数组:" ); (10) 에 대한이 ( int로 0 = 1을, 난 numbers.length를 <; 내가 ++ ) { 11 에서 System.out.println ( "참조 ["+ I + "]"+ 번호 [I]); 12 } 13 14 경우 (t.duplicate (번호 numbers.length), DUP) (15) { 16 에서 System.out.println ( "含有重复元素DUP" ); (17) 에 대한이 ( int로 0 = 1을, 난 <dup.length; 내가 ++ ) { 18 에서 System.out.println ( "DUP ["+ I + "]"+ DUP [I]); 19 } 20 } 21 22 } 23 공용 부울 중복 ( INT [] 번호, INT의 길이,INT [] 중복) { 24 IF (번호 == 널 || 길이 == 0 ) 25 리턴 false로 , 26은 27 ; Arrays.sort에 (번호) (28) (29) 의 INT duplen TEMP = 0, J = 0, = 0 , 30 에 대한 ( int로 ; I는 <-length 1. I ++ I = 0 ) { 31 인 경우 (숫자가 [I]를 == 번호 [. I + 1 ]) { 32 TEMP를 ++ ; (33)는 / * 34 * 경우에만 두 개의 인접한 값하다면 동시에 (임시 == 1), 갈 중복 배열 중복을 축적합니다 (35) 네 번 2 {2,2,2,2} 비교의 동일한 총량 셋 개 이상의 인접한 일련의 값이있는 경우 * 36 처음 비교 * {2,2}, 임시 ++ == 1, 복제에 저장 될 수있다 어레이 {2,2,2} 및 두 비교 ++ == 2 TEMP, TEMP. 3 ++ == 37 (TEMP == 1)가 없습니다 중복은 이전 데이터를 저장 한 경우 * TEMP 값이 상기 조건을 만족하지 않는 38 * * / 39 IF (TEMP == 1. ) { 40 중복 [J ++ =의 번호 [I]을, (41)가된다 ++ duplen ; 42이다 } 43이다 } 다른 { 44은 TEMP = 0 ;} 45 } (46) 인 경우(duplen == 0 ) { 47 반환 거짓 ; 48 } 다른 { 49 반환 사실 ; 50 } 51 } 52 }