3. 无重复字符的最长子串

题意

题解

思路:只增大的滑动窗口,遍历一次

  • 时间复杂度:O(N)
  • 空间复杂度:O(1) ```go func lengthOfLongestSubstring(s string) int { start, end := 0, 0 for i := 0; i < len(s); i++ {
    1. index := strings.Index(s[start:i], string(s[i]))
    2. if index == -1 {
    3. if i+1 > end {
    4. end = i + 1
    5. }
    6. } else {
    7. start += index + 1
    8. end += index + 1
    9. }
    } return end - start }

``` 结果:

  • 执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
  • 内存消耗:2.5 MB, 在所有 Go 提交中击败了100.00%的用户