给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。
遍历数组,将不重复的数组通过map 记录数值和下标,当重复时候,比较max(最长无重复长度)与map 的长度,取最大值,将index 重新定位到出现重复数字的下一位
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param arr int整型一维数组 the array
* @return int整型
*/
export function maxLength(arr: number[]): number {
let index: number = 0;
let max: number = 0;
let map = new Map<number, number>();
while(index <arr.length){
if(map.has(arr[index])){
max = Math.max(max,map.size);
index = map.get(arr[index])+1;
map.clear();
}else{
map.set(arr[index],index);
index++;
}
}
return max;
// write code here
}