双指针法,map记录的是每个不重复key的索引
class Solution {public:int maxLength(vector<int>& arr) {// write code hereint n = arr.size();int len =0;unordered_map<int,int>mp;//用集合实先计数for(int i =0,j=0;i<n;i++){if(mp.count(arr[i])){/// j=mp[arr[i]]+1;//可能arr[i]重复的不是arr[j],而是map中某一个//那么j 就会 > mp[arr[i]]j=max(mp[arr[i]]+1,j);}mp[arr[i]]=i;len=max(len,i-j+1);}return len;}};
用Unorder_set记录子数组,其大小就是子数组个数 ```cpp class Solution { public: int maxLength(vector
& arr) { // write code hereint n = arr.size();int len =0;unordered_set<int>jihe;int l=0,r=0;while(r<n){if(jihe.find(arr[r]) !=jihe.end()){jihe.erase(arr[l]);l++;}else{jihe.insert(arr[r]);r++;}len=max(len,(int)jihe.size());}return len;
} };
```
