AcWing 3803. 数组去重
原题链接
简单
C++ 代码
//数据范围很小,没必要写个哈希了,自己用个数组记录存储状态即可
#include <iostream>
#include <vector>
using namespace std;
int t;
int main(){
cin>>t;
while (t--){
int n;
scanf("%d",&n);
int a[60];
bool st[1010]; //记录数字i是否被存过,存过的为1,没存过记为0
for(int i=0;i<1010;i++){ //用memset更好,这里就不再写了
st[i]=0;
}
vector <int> v;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=n;i>=1;i--){
if(st[a[i]]==0){
st[a[i]]=1;
v.push_back(a[i]);
}
}
cout<<v.size()<<endl;
for(int i=v.size()-1;i>=0;i--){
cout<<v[i]<<" ";
}
cout<<endl;
}
return 0;
}
//本人系统学习算法不到一个月,做的繁琐地方多多指教,谢谢各位友友