AcWing 817. 数组去重
原题链接
中等
作者:
acwing_ice
,
2024-03-29 16:23:58
,
所有人可见
,
阅读 1
//输入为5 3
// 1 1 2 4 5
//输出为4
//输出结果为 n-size+前size个数中不同数的个数
//n=5 size=3
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1010;
int get_unique_count(int a[], int n) // 返回数组前n个数中的不同数的个数
{
sort(a,a+n);//从小到大排序
int k=1;
for(int i=1;i<n;i++)
{
if(a[i]!=a[k-1]) a[k++]=a[i];//双指针,k计数,如果相同,则k指针不动,如果不同,k指针向后移
//i指针在for循环里面,每次都会往后移动一位
}
cout<<k<<endl;
return 0;
}
int main()
{
int n;
cin>>n;
int a[N];
for(int i=0;i<n;i++) cin>>a[i];
get_unique_count(a,n);
return 0;
}