#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
const int maxn=100010;
int n;
int a[maxn];
unordered_map<int,int>m;
int main(){
cin>>n;
for(int i=0; i<n; i++)cin>>a[i];
int j=0;
int ans=0;
for(int i=0; i<n; i++){
while(m[a[i]]>0&&j<=i){
m[a[j]]--;
j++;
}
ans=max(ans,i-j+1);
m[a[i]]++;
}
cout<<ans;
return 0;
}
请问这里用哈希表,我感觉就是判断了重复的数,其它的没什么变化啊,是我哈希表理解的有问题嘛?
哈希表一般就是这个作用,O(1)的时间