题解 | #最长无重复子数组#

最长无重复子数组

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
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务