当前位置: 首页 > news >正文

【76. 最小覆盖子串】

Leetcode算法练习 笔记记录

  • 76. 最小覆盖子串

76. 最小覆盖子串

滑动窗口的hard题目,思路先找到第一个覆盖的窗口,不断缩小左边界,找到更小的窗口并记录。
思路很简单,写起来就不是一会事了,看题解看了几个h,还是太菜了,这题得重点标记一下。 还是参考灵神的。灵神b站

    public String minWindow(String s, String t) {String ans = "";if (t.length() > s.length()) {return ans;}int[] arrayT = new int[128];int[] arrayS = new int[128];for (int i = 0; i < t.length(); i++) {arrayT[t.charAt(i)]++;}int min = Integer.MAX_VALUE;int left = 0;for (int right = 0; right < s.length(); right++) {arrayS[s.charAt(right)]++;while (checkExist(arrayS, arrayT)) {if (right - left < min) {min = right - left;ans = s.substring(left, right + 1);}arrayS[s.charAt(left)]--;left++;}}return ans;}private boolean checkExist(int[] arrayS, int[] arrayT) {for (int i = 'A'; i <= 'Z'; i++) {if (arrayS[i] < arrayT[i]) {return false;}}for (int i = 'a'; i <= 'z'; i++) {if (arrayS[i] < arrayT[i]) {return false;}}return true;}

相关文章:

  • Java使用mybatis-plus做查询时LocalDateTime报错处理方案
  • Oracle Enqueue Names
  • Nginx配置同一端口不同域名或同一IP不同端口
  • DSP定时器的计算
  • [每日一题] 3356. 零数组变换ii
  • C++初阶-vector的模拟实现2
  • WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来
  • 汽车电子电气架构诊断功能开发全流程解析
  • Shell入门篇二
  • CPS是什么?
  • 基于Springboot + vue3实现的流动摊位管理系统
  • 【CCS】关于CCS12 编译报错:error #10099-D:program will not fit into available memory解决办法
  • 使用MATLAB输出给定范围内的所有质数
  • 07 接口自动化-用例管理框架之pytest单元测试框架
  • MySQL--day5--多表查询
  • MySQL字符串拼接方法全解析
  • 25_05_19Linux实战篇、第一章_01若依前后端部署之路(后端)
  • 【web全栈】若依框架B站学习视频
  • 如何解决测试覆盖率与迭代速度的冲突问题?
  • `application-{env}.yml` 配置文件来实现多环境配置