要求:时间复杂度为o(n)。
#include<iostream> using namespace std; void do_dup(int a[] , int n) { int *b = new int[n]; for( int i = 0 ; i != n ; ++i ) { b[i] = -1 ; } for( int j = 0 ; j != n ; ++j ) { if( b[a[j]] == -1 ){ b[a[j]] = a[j] ; } else { cout << b[ a[j] ] << endl ; break ; } } } int main(){ int a[]={ 1 , 2 , 3 , 4 , 3 } ; do_dup( a , 5 ) ; }
#include<iostream> using namespace std; void do_dup(int a[] , int n) { int *b = new int[n]; for( int i = 0 ; i != n ; ++i ) { b[i] = -1 ; } for( int j = 0 ; j != n ; ++j ) { if( b[a[j]] == -1 ){ b[a[j]] = a[j] ; } else { cout << b[ a[j] ] << endl ; break ; } } } int main(){ int a[]={ 1 , 2 , 3 , 4 , 3 } ; do_dup( a , 5 ) ; }