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

最长无重复子数组

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

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
06-07 21:26
江南大学 C++
话不多说,直接上时间线和图片1.2024年10月底发offer,并签三方2.2025年5月底公司违约
从零开始的转码生活:希望所有签了三方但直接违约的公司都倒闭!都倒闭!都倒闭!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务