对于30%的数据,1 <= N <= 100,给出的数不大于100,均为非负整数;
对于50%的数据,1 <= N <= 10000,给出的数不大于10000,均为非负整数;
对于100%的数据,1 <= N <= 50000,给出的数在32位有符号整数范围内。
提示:
由于数据量很大,使用C++的同学请使用scanf和printf来进行输入输出操作,以免浪费不必要的时间。
题解:本来是想要练习hash 的,但是看到之后就直接用map水过了。
据说这道题可以用来练习平衡树。
代码长度感人。
#include<iostream> #include<cstdio> #include<cstring> #include<map> using namespace std; int n,m,ans[100000]; map<int,int> mp; int main() { scanf("%d",&m); for (int i=1;i<=m;i++) { scanf("%d",&n); mp.clear(); memset(ans,0,sizeof(ans)); for (int j=1;j<=n;j++) { int x; scanf("%d",&x); if (!mp[x]) ans[++ans[0]]=x,mp[x]=1; } for (int j=1;j<=ans[0];j++) if (j!=ans[0]) printf("%d ",ans[j]); else printf("%d\n",ans[j]); } }