【数组】- 最小覆盖子串

1. 对应力扣题目连接

  • 最小覆盖子串

2. 实现案例代码

public class MinimumCoveringSubstring {public static void main(String[] args) {System.out.println(minWindow("ADOBECODEBANC", "ABC")); // 输出:"BANC"System.out.println(minWindow("a", "a")); // 输出:"a"System.out.println(minWindow("a", "aa")); // 输出:""System.out.println(minWindow("AAABBB", "AB")); // 输出:"AB"System.out.println(minWindow("ADOBECODEBANC", "XYZ")); // 输出:""System.out.println(minWindow("ABCDABCD", "BCD")); // 输出:"BCD"System.out.println(minWindow("ABCD", "AB")); // 输出:"AB"System.out.println(minWindow("XYZABC", "ABC")); // 输出:"ABC"System.out.println(minWindow("AXBYCZ", "ABC")); // 输出:"AXBYC"System.out.println(minWindow("AAABBBCCC", "ABC")); // 输出:"ABBBC"}public static String minWindow(String s, String t) {if (s.length() == 0 || t.length() == 0) {return "";}// 记录t中字符的需求Map<Character, Integer> need = new HashMap<>();for (char c : t.toCharArray()) {need.put(c, need.getOrDefault(c, 0) + 1);}// 记录窗口中字符的数量Map<Character, Integer> window = new HashMap<>();int left = 0, right = 0;int valid = 0;int start = 0, minLength = Integer.MAX_VALUE;while (right < s.length()) {char c = s.charAt(right);right++;// 窗口内数据更新if (need.containsKey(c)) {window.put(c, window.getOrDefault(c, 0) + 1);if (window.get(c).intValue() == need.get(c).intValue()) {valid++;}}// 判断左侧窗口是否要收缩while (valid == need.size()) {// 更新最小覆盖子串if (right - left < minLength) {start = left;minLength = right - left;}char d = s.charAt(left);left++;// 窗口内数据更新if (need.containsKey(d)) {if (window.get(d).intValue() == need.get(d).intValue()) {valid--;}window.put(d, window.get(d) - 1);}}}return minLength == Integer.MAX_VALUE ? "" : s.substring(start, start + minLength);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决RuntimeError: Unsupported image type, must be 8bit gray or RGB image.

今天在使用Opencv进行人脸识别项目时发现了一个问题&#xff0c;一直报这个错误RuntimeError: Unsupported image type, must be 8bit gray or RGB image.查了一下资料也是解决了&#xff0c;这样给大家分享一下 解决方案 Numpy 有一个主要版本更新&#xff0c;与 dlib 不兼容。…

【Docker】创建 swarm 集群

目录 1. 更改防火墙设置 2. 安装 Docker 组件 3. 启动 Docker 服务&#xff0c;并检查服务状态。 4. 修改配置文件&#xff0c;监听同一端口号。 5. 下载 Swarm 组件 6. 创建集群&#xff0c;加入节点 7. 启动集群 8. 查询集群节点信息 9. 查询集群具体信息 10. 查询…

电脑文件concrt140.dll丢失要怎么恢复?靠谱修复方法分析

电脑文件concrt140.dll丢失这种情况&#xff0c;相对来说还是比较少见的&#xff01;但是不代表没有&#xff0c;既然有人出现这种情况了&#xff0c;那么小编势必要给大家详细的讲解一下concrt140.dll这个文件&#xff0c;以及我们要怎么去解决concrt140.dll文件丢失的问题。下…

hnust 1817 算法10-10,10-11:堆排序

hnust 1817 算法10-10,10-11&#xff1a;堆排序 题目描述 堆排序是一种利用堆结构进行排序的方法&#xff0c;它只需要一个记录大小的辅助空间&#xff0c;每个待排序的记录仅需要占用一个存储空间。 首先建立小根堆或大根堆&#xff0c;然后通过利用堆的性质即堆顶的元素是最…

【算法篇】查找字符串数组中的最长公共前缀

问题描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”“”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解题 为了解决这个问题,我们可以遍历…

pppd 返回错误码 含义

错误码 00&#xff1a; pppd已经断开&#xff0c;或者已经成功建立连接后请求方又中 断了。 01&#xff1a; 发成了一个严重错误&#xff0c;例如系统调用失败或者访问非法内存。 02&#xff1a; 处理给定操作是检测到错误&#xff0c;例如使用两个互斥的操作。 03&#xff1a;…

如何获取Power BI的个性可视化控件?

我们在使用Power BI Desktop自带可视化控件进行报表设计的时候&#xff0c;有的时候会发现自带控件使用起来略显单薄&#xff0c;需要一些更有创意或者更能直接吸人眼球的可视化控件。 那有没有地方可以让我们找到一些个性化控件呢&#xff1f; 答案是肯定的&#xff0c;目前P…

每日一道算法题 括号的最大嵌套深度

题目 1614. 括号的最大嵌套深度 - 力扣&#xff08;LeetCode&#xff09; Python class Solution:def maxDepth(self, s: str) -> int:count0maxCount0for i in s:if i(:count1if i):maxCountmax(maxCount,count)count-1return maxCountC class Solution { public:int m…

vscode 安装Vue插件

打开扩展面板 --> 点击左侧的扩展图标&#xff0c;或者按下快捷键 Ctrl Shift X 搜索插件,在搜索框中输入 Vue vue-helper 用来快捷提示&#xff0c;如果使用elementui的话&#xff0c;插件不会自动提示&#xff0c;安装了它&#xff0c;组件、属性都会有提示了 Vetur V…

Ionic 滑动框

Ionic 滑动框 Ionic 是一个强大的开源框架,用于构建高性能、高质量的移动端和网页应用程序。它以其美观的设计和丰富的组件库而闻名,其中包括滑动框(Slide Box)。滑动框是一个多功能的组件,允许用户通过滑动来浏览图片、文本或其他内容。在本篇文章中,我们将深入探讨Ion…

嵌入式Linux系统编程 — 4.1 字符串输入输出

目录 1 字符串输出 1.1 字符串输出函数简介 1.2 示例程序 2 字符串输入 2.1 字符串输入简介 2.2 示例程序 程序运行时&#xff0c;需打印信息至标准输出 stdout 设备 或标准错误 stderr设备&#xff08;譬如屏幕&#xff09;&#xff0c;如调试信息、报错信息、中间产生的…

Java | Leetcode Java题解之第202题快乐数

题目&#xff1a; 题解&#xff1a; class Solution {private static Set<Integer> cycleMembers new HashSet<>(Arrays.asList(4, 16, 37, 58, 89, 145, 42, 20));public int getNext(int n) {int totalSum 0;while (n > 0) {int d n % 10;n n / 10;totalS…

学习python笔记:10,requests,enumerate,numpy.array

requests库&#xff0c;用于发送 HTTP 请求的 Python 库。 requests 是一个用于发送 HTTP 请求的 Python 库。它使得发送 HTTP 请求变得简单且人性化。以下是一些基本的 requests 函数及其用途&#xff1a; requests.get(url, **kwargs) 发送一个 GET 请求到指定的 URL。 i…

Windows

电脑手动设置了IP后有两个IP地址如何处理 1. WinR 打开 cmd 2. netsh winsock reset catalog 3. netsh int ip reset reset.log 4. 重启 5. 手动配置IP地址 6. 查看IP状态时&#xff0c;就不会再出现自动分配的IPC# 获取当前登录的用户及组 using System.Security.Principal;v…

实现Spring Boot与RabbitMQ消息中间件的无缝集成

实现Spring Boot与RabbitMQ消息中间件的无缝集成 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在分布式系统中&#xff0c;消息中间件扮演着至关重要的角色…

MySQL 复制技术详解

MySQL 复制技术用于在多个服务器之间同步数据&#xff0c;提高系统的可用性、可靠性和性能。本文将系统性地介绍三种主要的MySQL复制方式&#xff1a;主从复制&#xff08;Master-Slave Replication&#xff09;、主主复制&#xff08;Master-Master Replication&#xff09;、…

枫清科技创始人高雪峰:不取侥幸之利,做难而正确的事!丨数据猿专访

大数据产业创新服务媒体 ——聚焦数据 改变商业 金庸有一本著作叫做《侠客行》&#xff0c;这部武侠小说的主角叫做石破天&#xff0c;他从小的时候便跟随少林弟子习武。长大后&#xff0c;随着自己获得的感悟越来越多&#xff0c;最终选择开宗立派&#xff0c;独创一门武功行…

碧海威L7云路由无线运营版 confirm.php/jumper.php 命令注入漏洞复现(XVE-2024-15716)

0x01 产品简介 碧海威L7网络设备是 北京智慧云巅科技有限公司下的产品,基于国产化ARM硬件平台,采用软硬一体协同设计方案,释放出产品最大效能,具有高性能,高扩展,产品性能强劲,具备万兆吞吐能力,支持上万用户同时在线等高性能。其采用简单清晰的可视化WEB管理界面,支持…

React Hooks小记(十)_useCallback

useCallback 1. 语法格式 之前我们所学的 useMemo 能够达到缓存某个变量值的效果&#xff0c;而当前要学习的 useCallback 用来对组件内的函数进行缓存&#xff0c;它返回的是缓存的函数。它的语法格式如下&#xff1a; const memoCallback useCallback(cb, array)useCallb…

【ONLYOFFICE 8.1】的安装与使用——功能全面的 PDF 编辑器、幻灯片版式、优化电子表格的协作

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、ONLYOFFICE 简介三、安装1. Windows/Mac 安装2. 文档开发者版安装安装前准备使用 Docker 安装使用 Linux 发行版安装配置 ONLYOFFICE 文档开发者版集成和开发 四、使用1. 功能全面的 PDF 编辑器PDF 查看和导航P…