最长无重复子串,比较自然的解法,不能是暴力破解
也算是很容易想到的一种解法:对数组作遍历的同时,如果出现重复元素,即定位到当前遍历数组第一次出现重复元素的位置,之后遍历位置从第一次出现重复元素位置下一个元素开始。
class Solution: def maxLength(self , arr: List[int]) -> int: # write code here if len(arr) == 0 or len(arr) == 1: return len(arr) i = 0 ans = [] while i<len(arr)-1: temp = 1 end = 0 for j in range(i+1, len(arr)): if arr[j] not in arr[i:j] and j < len(arr)-1: temp+=1 elif arr[j] not in arr[i:j] and j == len(arr)-1: ans.append(temp+1) end = j break else: ans.append(temp) end = j break if end == len(arr)-1: return max(ans) i = arr[i:end].index(arr[end])+i+1 return max(ans)