AcWing 817. 数组去重
原题链接
中等
作者:
GRID
,
2021-04-06 09:10:55
,
所有人可见
,
阅读 212
C++ STL
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int n,x;
int get_unique_count()
{
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end()); //去重
return v.size();
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
v.push_back(x);
}
cout<<get_unique_count();
return 0;
}
C++ 无STL
#include<bits/stdc++.h>
using namespace std;
int n,a[1010];
int get_unique_count(int a[], int n)
{
int co=0;
sort(a,a+n);
for(int i=0;i<n;i++)
{
if(!i) co++;
else{
if(a[i]==a[i-1]){
int j=i;
while(j<n && a[j]==a[i-1]){ //将所有相同的元素都去除掉
j++;
}
i=j-1;
}
else co++;
}
}
return co;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
cout<<get_unique_count(a,n);
return 0;
}