题目大意
https://leetcode.com/problems/longest-substring-without-repeating-characters/
满足这样条件的子串最大长度:子串中没有重复字符
题目分析
暴力解法,枚举子串的首位置,求最大的不重复子串的长度,并借助hashmap,复杂度是O(n^2)。看了一下disscuss区竟然有o(n)的,思路是有两个指针,一个作为子串的左边界,另一个作为右边界。借助hashmap,key是字符,value是字符的index,遇到已在hashmap的字符就要将左边界右移(注意左边界只能向右),然后put进入hashmap,并更新max值。
代码
|
|
时间复杂度 O(n)