我怎么算感觉也是n^2的复杂度啊?题解区有很多n^2的代码,真的都是正确的嘛? 求大佬算一下这份代码的复杂度是多少?
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int n,m,res,num;
int ans,cnt,sum;
struct node
{
int x,y;
bool operator<(const node&w)const
{
if(x==w.x) return y<w.y;
else return x<w.x;
}
}poke[N];
queue<int>que;
bool operator ==(const node &a,const node &b)
{
return (a.x==b.x&&a.y==b.y);
}
void clear_(){
while(!que.empty()) que.pop();
}
signed main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>poke[i].x>>poke[i].y;
sort(poke+1,poke+1+n);
num=unique(poke+1,poke+1+n)-poke-1;
for(int i=1;i<=num;i++){
if(poke[i].x!=poke[i-1].x) clear_();
while(que.size()&&poke[i].y-que.front()>=n) que.pop();
que.push(poke[i].y);
res=max(res,(int)que.size());
}
cout<<n-res;
return 0;
}