http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?pid=1001&cid=542
#include <iostream> #include <string> #include <algorithm> #include <vector> #include <cstdio> using namespace std; int main() { int n ; while (scanf("%d", &n) != EOF) { int t1[n]; int t2[n]; for ( int i = 0 ; i < n ; ++i) cin >> t1[i] ; for ( int i = 0 ; i < n ; ++i) cin >> t2[i] ; sort(t1,t1+n); sort(t2,t2+n); int lt1 = unique(t1,t1+n) -t1 ; int lt2 = unique(t2,t2+n)- t2 ; if ( lt1 != lt2 )cout << "NO" << endl ; int count = 0 ; for ( int i = 0 ; i < lt1;++i) { if(t1[i] != t2[i]) { cout << "NO" << endl; break; } else ++count; } if(count == lt1) cout <<"YES" << endl; } return 0 ; }
还有一种方法 就是要用set去做 ,set本身不包括重复元素,可以直接判断。