すべての繰り返しの要素の配列を取得し

  • 配列を考えると、配列は、それが含まれているか否かが判断されます。連ですべての配列要素の出力は、trueを返した場合、そうでない場合は、falseを返します。
  • 例では、数値の配列として、出力[2,3,5]は、trueを返し
    INT []番号= {1,3,4,5,5,3,2,3,2,2,2}。

1.アイデア

  隣接の比較に続いて2つの今昇順ソート(または降順)に従って配列要素番号は、同じ2つの要素と、要素は、アレイ複製に格納された、繰り返しました。

  なお、複数ある場合(3以上)同じ隣人、反復配列要素複製も発生し、もし同じ4つの隣接する要素2 {2,2,2,2}、前の練習によると、複製配列は、(3つの連続での比較結果が同じであるため)3 2を持っています、タイトルは需要を満たしていません。

  このバグ2(現在のブロガーが2つだけと考えることができます)を回避する方法があります。

1)連続番号の比較、現在の反復要素はアレイを複製するかどうかを判断します。次のようにアイデアは以下のとおりです。

比較int型のカウント= 0;

用(.......ソートされた配列番号を横断した後...){

  IF(配列要素で==現在の配列要素)

    一時++;

    (1 ==比較の数であれば)なら

      複製の配列に現在繰り返しエレメント。

  他

    = 0の比較の数。

}

ユニークな要素 - 2)の特性のセットを使用して設定。次のように簡単なアイデアがあります

  ソートされた配列番号を横断しながらセットは、(次の現在の配列要素の配列要素を== &&セットは、現在の配列要素が含まれていない)場合に満たされるセットに加え、要素オブジェクトのセットを定義します

2の参照コード

1  輸入 java.utilの。* ;
2  
3  パブリック クラスTEST {
 4      パブリック 静的 ボイドメイン(文字列[]引数){
 5          TESTさt = 新しいテスト();
6          INT []番号= {1,3,4,5,5,3,2,3,2,2,2 }。
7          INT [] DUP = 新しい INT [numbers.length / 2 + 1 ]。
8  
9          のSystem.out.println( "原番号数组:" )。
10          のためにint型 ; iがnumbers.lengthを<I ++は、I = 0 ){
 11             System.out.println( "番号[" + I + "]" + 数字[I])。
12          }
 13  
14          であれば(t.duplicate(数字、numbers.length)、DUP)
 15          {
 16              のSystem.out.println( "含有重复元素DUP:" )。
17              のためには、int型 0 = Iと、iは<dup.length; iは++ ){
 18                  のSystem.out.println( "DUP [" + I + "]" + DUP [I])。
19              }
 20          }
 21  
22      }
 23      公共 ブール重複(INT []数字、int型の長さは、INT []複製){
 24          IF(番号== NULL ||長さ== 0 25              リターン falseに26である 
27          ;は、Arrays.sort(番号)
 28  
29          のint duplen TEMP = 0、J = 0、= 0 ;
 30          int型 I = 0; Iは-lengthを<1; Iは++ ){
 31である             場合(番号[I] ==数字は[I + 1。]){
 32                  TEMP ++ ;
 33である                 * / 
34れている                 二つの隣接する値と場合にのみあれば*同じ時間(TEMP == 1)、行くために、重複配列の重複を蓄積する
 35                 4回2 {2,2,2,2}比較、同じ合計として三の以上の隣接する一連の値がある場合*
 36                  * {2,2}は初めて、TEMP ++ == 1を比較するには、重複して格納することができますアレイは、{2,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は         IF(== 0 duplen ){
 47              リターン 48          } {
 49              リターン 50          }
 51      }
 52 }

 

おすすめ

転載: www.cnblogs.com/EricGao/p/11735923.html