用一个变量ans记录目前桌子上的袜子数量,用maxx记录桌子上袜子的最大数量,很明显,当某一双袜子出现第一支的时候,ans++,出现第二只的时候ans–,每次ans++的时候,就看是否需要更新maxx,最后输出maxx即可。
#include<iostream>
#define llu unsigned long long
using namespace std;
bool a[100010];
int main()
{
int n;
int ans=0,maxx=0;
cin >> n ;
n=n*2;
while(n--)
{
int x;
cin >> x;
if(a[x]==0){
ans++;
maxx=max(ans,maxx);
a[x]=1;
}
else{
a[x]=0;
ans--;
}
}
cout << maxx << endl ;
return 0;
}