题目描述
参考 y总 的双指针做的, orz.
一定要记得对原数组排序;
算法1
(双指针) $O(n)$
时间复杂度
$O(n)$
参考文献
y总
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e3 + 10;
int n, a[N];
int main()
{
cin >> n;
for (int i = 0 ; i < n ; ++ i) cin >> a[i];
sort(a,a + n);//一定要先排序
int k = 1;
for (int i = 1 ; i < n ; ++ i) if (a[i] != a[k - 1]) a[k ++] = a[i];
cout << k;
return 0;
}