题解 | #最长无重复子数组#
最长无重复子数组
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
//滑动窗口,用哈希表记录当前窗口出现的字符,有重复字符出现时,缩小窗口(即增大窗口左边界),直至无重复
class Solution { public: int maxLength(vector<int>& arr) { int n=arr.size(); unordered_set<int> mark; int ans=0; int left=0; int right=0; for(;right<n;++right) { if(mark.count(arr[right])) { ans=max(ans,right-left); while(left<right&&mark.count(arr[right])) { mark.erase(arr[left]); ++left; } } mark.insert(arr[right]); } return ans=max(ans,right-left); } };