2022-06-20 048最长不含重复字符的子字符串

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

双指针+哈希表
右指针是for循环遍历,左指针随着哈希表判断是否重复而改变,统计每次循环两个指针的窗口长度。

class Solution {
    public int lengthOfLongestSubstring(String s) {

   Map<Integer,Integer> hashmap=new HashMap<>();
// 滑动窗口
int i=-1,res=0;
   for(int j=0;j<s.length();j++){

       if(hashmap.containsKey(s.charAt(j)-'a'))
          i=Math.max(i,hashmap.get(s.charAt(j)-'a'));
      hashmap.put(s.charAt(j)-'a',j);
    //   System.out.println("j:"+j+" i:"+i);
      res=Math.max(res,j-i);
   }
   return res;
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容