3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
解决思路:滑动窗口
class Solution { public int lengthOfLongestSubstring(String s) { char[] chars = s.toCharArray(); int[] freq = new int[256]; int length=chars.length; int l=0; int r=-1; int result=0; while(l<length){ if(r+1<length && freq[chars[r+1]]==0){ freq[chars[++r]]++; }else{ freq[chars[l++]]--; } result=r-l+1>result?(r-l+1):result; } return result; } }
立志如山 静心求实
浙公网安备 33010602011771号