#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 题解
https://leetcode.cn/problems/longest-substring-without-repeating-characters/submissions/
#
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
def maxLength(self , arr: List[int]) -> int:
# write code here
n=len(arr)
ans=0
rk=-1 # 设置一个向右的指针
st=set()
for i in range(0,n):
if i!=0:
st.remove(arr[i-1])
while rk+1<n and arr[rk+1] not in st:
st.add(arr[rk+1])
rk+=1
ans=max(ans,len(st))
return ans
def maxLength1(self , arr: List[int]) -> int:
# write code here
n=len(arr)
ans=0
if n==1:
return 1
for i in range(n-1):
st=set()
st.add(arr[i])
for j in range(i+1,n):
if arr[j] in st:
break
else:
st.add(arr[j])
#print(st)
ans=max(ans,len(st))
return ans