题解 | #最长无重复子数组#
最长无重复子数组
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
哈希表+滑动窗口,用哈希表保存不重复的元素,滑动窗口在遍历的时候,如果哈希表中存在重复元素,则分别调整哈希表和滑动窗口。
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& arr) {
int result=0;
unordered_set<int> hash_set{};
int left=0;
for(int right=0;right<arr.size();right++){
while(hash_set.find(arr[right])!=hash_set.end() && left<right){
hash_set.erase(hash_set.find(arr[left]));
left++;
}
hash_set.insert(arr[right]);
result=max(result,right-left+1);
}
return result;
}
};