我做出来的是
O(nlogn) 的做法(sort排序)
用的是双指针
原谅我这个新手不知道指针应该用什么变量名,于是把栈的变量名搬过来了
听说有线性做法,求
我的代码:
(有没有优化的地方呢?)
#include<bits/stdc++.h>
using namespace std;
int n,a[100001];
int main(){
scanf("%d",&n);
int sum=n;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
sort(a+1,a+n+1);
int top=2,pop=1;
while(top<=n){
if(a[pop]<a[top]){
sum--;
pop++;
}
top++;
}
printf("%d",sum);
return 0;
}