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

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

1 public class Solution { 2     public int lengthOfLongestSubstringKDistinct(String s, int k) { 3         if (k == 0) { 4             return 0; 5         } 6          7         Map
letters = new HashMap<>(); 8 int result = 0; 9 int count = 0;10 for (int left = 0, right = 0; right < s.length(); right++) {11 letters.put(s.charAt(right), letters.getOrDefault(s.charAt(right), 0) + 1);12 if (letters.get(s.charAt(right)) == 1) {13 count++;14 }15 16 if (count > k) {17 while (left < right && letters.get(s.charAt(left)) > 0) {18 int current = letters.get(s.charAt(left));19 letters.put(s.charAt(left++), current - 1);20 if (current == 1) {21 count--;22 break;23 }24 }25 }26 27 result = Math.max(result, right - left + 1);28 }29 return result;30 }31 }

1. put element do not forget to + 1

2. do not forget left move left++.

转载于:https://www.cnblogs.com/shuashuashua/p/5633045.html

你可能感兴趣的文章
问题解决 sql server 2008 评估期已过期解决办法
查看>>
工具 EZDML表结构设计器
查看>>
终于掌握vim的寄存器和系统剪贴板的使用了- 要安装vim-X11包
查看>>
Boost下载安装编译配置使用指南(含Windows和Linux) .
查看>>
深度分析 Java 的 ClassLoader 机制(源码级别)
查看>>
Oracle 获取前几行数据问题的陷阱
查看>>
SpringBoot聚合项目打包
查看>>
设计模式之抽象工厂模式
查看>>
批量远程执行linux服务器程序--基于pxpect(多进程、记日志版)
查看>>
栅格计算器初试
查看>>
[原创]基于proteus仿真16*64点阵屏带DS1302实钟芯片
查看>>
【MVC】action方法接收浏览器参数的方式
查看>>
早期SpA患者髋关节的受累发生率
查看>>
对于毛星云opencv教程中的方法汇总
查看>>
Problem F: 等式
查看>>
Sql Server 还原数据库到指定路径语句
查看>>
[CODECHEF]EASYEX
查看>>
A trip through the Graphics Pipeline 2011_05
查看>>
PostGr-SQL database创建表
查看>>
宾语从句相关
查看>>