题解 | #最长无重复子数组#
最长无重复子数组
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
解题思路:
1.定义一个数组str,用来存放目前最长不重复的子数组
2.定义max,保存遍历数组过程中str长度的最大值
3.遍历数组,先判断若当前项在str数组中已存在,则str从下标0开始直至当前项全部删除, 接着将当前项添加到str数组中,max取max和str长度的最大值
代码:
function longest (arr) {
let str=[];
let max=0;
for (let i=0; i<arr.length; i++){
let index = str.indexOf(arr[i])
if (index !== -1) {
str.splice(0, index+1)
}
str.push(arr[i])
max = Math.max(max, str.length)
}
return max
}