题解 | #最长无重复子数组#
最长无重复子数组
https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
//双指针法+hash
//首先判断arr
//其次right指针右移,且值一直进入mp
//如果某一个mp(右指针的值)的值>1,则left左移,mp(left)--
#include <algorithm>
#include <unordered_map>
#include <vector>
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& arr) {
// write code here
if (arr.size()==0) {
return 0;
}
int res=0;
unordered_map<int, int> mp;
int left=0,right=0;
for (; right<arr.size(); right++) {
mp[arr[right]]++;
while (mp[arr[right]]>1) {
mp[arr[left++]]--;
}
res=max(res, right-left+1);
}
return res;
}
};
基恩士成长空间 442人发布