主要思想就是双指针然后用set存区间中的值
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& arr) {
// write code here
int ans = 0, l = 0, r = 0, n =arr.size();
set<int> s;
while(l<=r && r<n){
while(r<n && s.find(arr[r]) == s.end()){
s.insert(arr[r]);
++r;
}
ans = max(ans, r - l);
while(l<=r && s.find(arr[r]) != s.end()){
s.erase(arr[l]);
++l;
}
ans = max(ans, r - l);
}
return ans;
}
};