博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 159. Longest Substring with At Most Two Distinct Characters
阅读量:5152 次
发布时间:2019-06-13

本文共 1020 字,大约阅读时间需要 3 分钟。

原题链接在这里:

题目:

Given a string, find the length of the longest substring T that contains at most 2 distinct characters.

For example, Given s = “eceba”,

T is "ece" which its length is 3.

题解:

与类似。快慢指针维护substring的方法在里有总结.

runner 扫过 char的frequency加一. 条件count++.

当count > 2后移动walker直到count减到2

Time Complexity: O(n), 窗口只移动一遍. Space: O(1). map size.

AC Java:

1 public class Solution { 2     public int lengthOfLongestSubstringTwoDistinct(String s) { 3         int res = 0; 4         int [] map = new int[256]; 5         int walker = 0; 6         int runner = 0; 7         int count = 0; 8         while(runner < s.length()){ 9             if(map[s.charAt(runner++)]++ == 0){10                 count++;11             }12             while(count > 2){13                 if(map[s.charAt(walker++)]-- == 1){14                     count--;15                 }16             }17             res = Math.max(res, runner - walker);18         }19         return res;20     }21 }

类似.

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/5182617.html

你可能感兴趣的文章
多路复用
查看>>
Java学习笔记--字符串和文件IO
查看>>
在js在添版本号
查看>>
sublime3
查看>>
JIRA
查看>>
小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
查看>>
深浅拷贝(十四)
查看>>
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
海上孤独的帆
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>