配列arr []配列の重複要素をスクリーニングすることは、時間の複雑さを考えます

アイデア:

2つの配列の使用、A [] ARRは、別の配列Bのすべての要素を格納するために繰り返さ[]添字の値に対応する時間の配列番号が発生し、ARR要素のインデックス値です。時間計算量はO(N)であります

なお、 Bは[]オーバーフロー値は、2つの隣接アレイ素子間の動的な差は、次に発生した場合ので、静的配列を適用するために必要な、動的配列[]必要に応じて、要素の数は、同時にすべての要素が不確実に有効であるので出力、トラバースへの直接出力します。

1の#include <iostreamの>
 2の#include <ベクトル>
 3  使用して 名前空間をSTD。
4  の#define MAXSIZE 100
 5  
6  int型 B [MAXSIZE] = { 0 }。
7ベクター< INT > A。
8  int型 ARR [ 5 ] = { 14314 }。
9  
10  ボイド反復(INT * ARR、INT N){
 11      のためにINTI = 0 ; I <N; I ++ ){
 12          B [ARR [I]] ++ ;
13      }
 14      のためにINT iが= 0 ; I <MAXSIZEは、I ++ ){
 15          であれば(B [i]が> 1 16              a.push_back(I)。
17      }
 18  }
 19  
20  、INT (){主
 21      リピート(ARR、5 )。
22      のためにINTは iは= 0 ; I <a.size(); I ++ 23          COUT << [I] <<"  " ;
24      リターン 0 ;
25 }

 

おすすめ

転載: www.cnblogs.com/PennyXia/p/12654888.html