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

最长无重复子数组

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
    def maxLength(self , arr: List[int]) -> int:
        dic = {}

        start = 0
        max_length = 0

        for i, v in enumerate(arr):
            if v in dic:  # 有两种情况,开始的值和当前值重复,另一种是其他值已经重复了,开始位置已经越过刚才那个重复的了
                start = max(start, dic[v] + 1)
            dic[v] = i
            max_length = max(max_length, i - start + 1)
        
        return max_length

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务