'''
解题思路:
方法一:用一个队列,把元素不停的加入到队列中,如果队列中有相同的元素,就把队首的相同元素及之前的元素都移除
方法二:使用两个指针,一个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
京公网安备 11010502036488号