1. 题目描述
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
1 | 输入: "abcabcbb" |
示例 2:
1 | 输入: "bbbbb" |
示例 3:
1 | 输入: "pwwkew" |
2. 题解
2.1. 思路1:暴力法
用两层循环遍历所有子串,取不重复的最长的
1 | for (int i = 0; i < n; i++) { |
2.2. 思路2:滑动窗口
保证窗口[i, j)是当前无重复字符的局部最长子串
2.3. Java实现
思路1:暴力法,用HashSet进行判重。如果[i,j]范围内的子串出现重复,j就不用必向后遍历了,直接break
1 | class Solution { |
思路2:滑动窗口
1 | class Solution { |