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

最长无重复子数组

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
}

全部评论

相关推荐

活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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