求线性做法(玄关)
查看原帖
求线性做法(玄关)
1435692
difficultlong楼主2024/11/1 21:26

我做出来的是 O(nlogn)O(n log n) 的做法(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;
}
2024/11/1 21:26
加载中...