2022-7-26 剑指offer-滑动窗口
给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。
1 class Solution { 2 public int lengthOfLongestSubstring(String s) { 3 Map<Character,Integer> map=new HashMap<>(); 4 int ans=0,n=s.length(),left=0; 5 for (int i=0;i<n;i++){ 6 char c=s.charAt(i); 7 if (map.containsKey(c)){ 8 left=Math.max(map.get(c)+1,left); 9 } 10 ans=Math.max(ans,i-left+1); 11 map.put(c,i); 12 } 13 return ans; 14 } 15 }
思路:利用hashmap的变式滑动窗口。
浙公网安备 33010602011771号