区块链技术博客
www.b2bchain.cn

159. 至多包含两个不同字符的最长子串-滑动窗口+hashmap

这篇文章主要介绍了159. 至多包含两个不同字符的最长子串-滑动窗口+hashmap,通过具体代码讲解8376并且分析了159. 至多包含两个不同字符的最长子串-滑动窗口+hashmap的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了159. 至多包含两个不同字符的最长子串-滑动窗口+hashmap。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/8376.html。具体如下:

159. 至多包含两个不同字符的最长子串-滑动窗口+hashmap 

 class Solution {   public int lengthOfLongestSubstringTwoDistinct(String s) {     int n = s.length();     if (n < 3) return n;          int left = 0;     int right = 0;    //字符 当前最右位置     HashMap<Character, Integer> hashmap = new HashMap<Character, Integer>();      int max_len = 2;      while (right < n) {       if (hashmap.size() < 3)         hashmap.put(s.charAt(right), right++);        if (hashmap.size() == 3) {         // 最左位置下标并从hashmap删除         int del_idx = Collections.min(hashmap.values());         hashmap.remove(s.charAt(del_idx));         //移动左指针         left = del_idx + 1;       }       max_len = Math.max(max_len, right - left);     }     return max_len;   } }   

 

本文地址https://www.b2bchain.cn/8376.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 159. 至多包含两个不同字符的最长子串-滑动窗口+hashmap
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们