题目要求
给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。
子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组
代码实现
class Solution {
public:
int maxLength(vector<int>& arr) {
// write code here
unordered_map<int, int> m;
int left = 0;
int right = 0;
int res = 0;
for(;right < arr.size(); right++)
{
m[arr[right]]++;
while(m[arr[right]] > 1)
{
m[arr[left++]]--;
}
res = max(res, right - left + 1);
}
return res;
}
};