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

最长无重复子数组

https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param arr int整型一维数组 the array
 * @return int整型
 */
func maxLength(arr []int) int {
	// 记录窗口内的元素
	seen := make(map[int]bool)
	// 初始化最大长度和左指针
	maxLen, left := 0, 0
	for right := 0; right < len(arr); right++ {
		for seen[arr[right]] {
			delete(seen, arr[left])
			left++
		}
		// 将当前元素加入窗口
		seen[arr[right]] = true
		// 更新最大长度
		if right-left+1 > maxLen {
			maxLen = right - left + 1
		}
	}
	return maxLen
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务