题意
给定一个数组arr
,返回arr
的最长无的重复子串的长度(无重复指的是所有数字都不相同)
题解
#include <unordered_map>
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& arr) {
int len = arr.size();
int res = 1;
unordered_map<int, int> m;
int left = 0;
for(int right = 0; right < len; right++){
if(m.find(arr[right]) != m.end()){
left = max(left, m[arr[right]] + 1);
}
res = max(res, right - left + 1);
m[arr[right]] = right;
}
return res;
}
};