''' 解题思路: 方法一:用一个队列,把元素不停的加入到队列中,如果队列中有相同的元素,就把队首的相同元素及之前的元素都移除 方法二:使用两个指针,一个i一个j,最开始的时候i和j指向第一个元素,然后i往后移,把扫描过的元素都放到map中,如果i扫描过的元素没有重复的就一直往后移,顺便记录一下最大值max,如果i扫描过的元素有重复的,就改变j的位置 ''' # # # @param arr int整型一维数组 the array # @return int整型 # class Solution: def maxLength(self , arr ): # write code here queue = [] maxLen = 0 for i in arr: if i not in queue: queue.insert(0,i) else: while queue[-1] != i: queue.pop() queue.pop() queue.insert(0,i) if len(queue)>maxLen: maxLen = len(queue) return maxLen