2022-7-26 剑指offer-滑动窗口

剑指 Offer II 016. 不含重复字符的最长子字符串

难度中等

给定一个字符串 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的变式滑动窗口。

posted on 2022-07-26 12:02  阿ming  阅读(18)  评论(0)    收藏  举报

导航