모든 반복 요소의 배열을 가져

  • 배열이 주어 배열이 포함되어 있는지 여부를 판정한다. 중복의 모든 배열 요소의 출력 경우, 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 }

 

추천

출처www.cnblogs.com/EricGao/p/11735923.html