AcWing 817. 数组去重
原题链接
中等
作者:
小小蒟蒻
,
2020-05-22 10:52:02
,
所有人可见
,
阅读 896
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1000;
int a[N], n;
int get_unique_count(int a[], int n)
{
sort(a, a + n);
int j = 0;
for(int i = 0; i < n; )
{
// 找出连续的元素值相等的区间[ j, i ]
for( ; i < n && a[i] == a[j]; i++);
// 在元素值不等的情况下, 区间复制
// 目标区间 [ j + 1, i ), 源区间 [ i, n )
for( ; i < n && a[i] != a[j]; a[++j] = a[i++]);
}
return j + 1;
}
int main() {
int l = 0;
cin >> n;
for(int i = 0; i < n; i++)
cin >> a[i];
cout << get_unique_count(a, n) << endl;
return 0;
}