# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param arr int整型一维数组 the array # @return int整型 # class Solution: def maxLength(self , arr: List[int]) -> int: np = dict() #建立一个字典记录每个数字出现的次数 res = 0 #输出最长的长度 left = 0 #左指针 for right in range(len(arr)):#右指针遍历整个arr if arr[right] in np:#如果右指针的数字在字典里出现过了,次数加一 np[arr[right]] += 1 else:#如果右指针的数字没出现在字典里过,建立一个数字,次数等于1 np[arr[right]] = 1 while np[arr[right]] > 1:#当右指针的数字在字典里出现的次数大于1,则移动左指针,并且左指针对应的数字的出现次数-1,直到右指针的数字出现次数为1为止 np[arr[left]] -=1 left +=1 res = max(res, right - left + 1)#始终使输出的长度保持最大 return res