题目描述
给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。
示例1
输入
[2,3,4,5]
输出
4
示例2
输入
[2,2,3,4,3]
输出
3
备注:
1<=n<=100000
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& arr) {
// write code here
if(arr.empty())
return 0;
vector<int> map(100000, -1);
int len = 0;
int pre = -1;
int cur = 0;
for(int i=0; i<arr.size();i++){
pre = max(pre, map[arr[i]]);
cur = i - pre;
len = max(len, cur);
map[arr[i]] = i;
}
return len;
}
};