AcWing 817. 数组去重
原题链接
中等
作者:
灵茶气艾福
,
2021-04-06 11:46:33
,
所有人可见
,
阅读 163
set 做法
#include <bits/stdc++.h>
#include <set>
using namespace std;
int n;
int main(){
set<int> temp;
int x;
cin>>n;
for(int i=0;i<n;i++){
scanf("%d",&x);
temp.insert(x);
}
cout<<temp.size()<<endl;
return 0;
}
通用做法:
#include <bits/stdc++.h>
#include <set>
using namespace std;
int n;
int myfun(vector<int> a ,int k){
int len1=a.size();
if(len1<k){
return len1;
}
int len=k;
for(int i=k,j=0;i<len1;i++){
if(a[i]!=a[j]){
a[len++]=a[i];
j++;
}
}
return len;
}
int main(){
int x;
cin>>n;
vector<int> a;
for(int i=0;i<n;i++){
scanf("%d",&x);
a.push_back(x);
}
sort(a.begin(),a.end());
cout<<myfun(a,1)<<endl;
return 0;
}