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

【重点】【滑动窗口】76.最小覆盖子串

题目
思路参考《算法小抄》

class Solution {
    public String minWindow(String s, String t) {
        int startIndex = -1, endIndex = s.length(), valid = 0, left = 0, right = 0;
        char[] sArray = s.toCharArray();
        char[] tArray = t.toCharArray();
        int[] need = new int[256];
        int[] window = new int[256];
        Set<Character> set = new HashSet<>();
        for (char c : tArray) {
            set.add(c);
            ++need[c];
        }
        while (right < sArray.length) {
            char c = sArray[right];
            ++right;
            if (!set.contains(c)) {
                continue;
            }
            ++window[c];
            if (window[c] == need[c]) {
                ++valid;
            }
            while (valid == set.size() && left < right) {
                if (right - left < endIndex - startIndex) {
                    startIndex = left;
                    endIndex = right;
                }
                char d = sArray[left];
                ++left;
                if (!set.contains(d)) {
                    continue;
                } else {
                    if (window[d] == need[d]) {
                        --valid;
                    }
                    --window[d];
                }
            }
        }

        return startIndex == -1 ? "" : s.substring(startIndex, endIndex);
    }
}

http://www.kler.cn/a/157611.html

相关文章:

  • LabVIEW微位移平台位移控制系统
  • 【从零开始的LeetCode-算法】922. 按奇偶排序数组 II
  • VoIP中常见术语
  • 网络原理(4)—— 网络层详解
  • Java手写简单Merkle树
  • Sqoop导入MySQL中含有回车换行符的数据
  • YoloV5改进策略:Swift Parameter-free Attention,无参注意力机制,超分模型的完美迁移
  • VSCode Vue 开发环境配置
  • clip-path,css裁剪函数
  • C语言碎片知识
  • PTA 7-231 买文具
  • 陀螺仪LSM6DSV16X与AI集成(2)----姿态解算
  • 数据结构-栈和队列
  • 一键式紧急报警柱系统
  • 力扣labuladong一刷day27天数组去重
  • 4-Docker命令之docker run
  • 剑指 Offer(第2版)面试题 16:数值的整数次方
  • JAVA-作业7-画一个笑脸
  • 【算法】算法题-20231205
  • 【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
  • canvas绘制小丑
  • Mysql、Oracle区分大小写?
  • 【新手解答8】深入探索 C 语言:递归与循环的应用
  • spring cloud nacos整合gateway
  • 十五、机器学习进阶知识:K-Means聚类算法
  • 【SQL SERVER】定时任务