这道题可以使用双指针即滑动窗口的方法写,不过有一个好的优化过程
优化
#include<bits/stdc++.h>
class Solution {
public:
int maxLength(vector<int>& arr) {
// write code here
map<int,int> mp;
int i=0,j=1;
mp[arr[0]]=0;
int Max=1;
while(j<arr.size())
{
if(mp.count(arr[j]))
{
i=max(mp[arr[j]]+1,i);
}
Max=max(Max,j-i+1);
mp[arr[j]]=j;
j++;
}
return Max;
}
};