LeetCode【76】最小覆盖子串

题目:
在这里插入图片描述

思路:
https://segmentfault.com/a/1190000021815411

代码:

public String minWindow(String s, String t) { Map<Character, Integer> map = new HashMap<>();//遍历字符串 t,初始化每个字母的次数for (int i = 0; i < t.length(); i++) {char char_i = t.charAt(i);map.put(char_i, map.getOrDefault(char_i, 0) + 1);}int left = 0; //左指针int right = 0; //右指针int ans_left = 0; //保存最小窗口的左边界int ans_right = -1; //保存最小窗口的右边界int ans_len = Integer.MAX_VALUE; //当前最小窗口的长度//遍历字符串 swhile (right < s.length()) {char char_right = s.charAt(right);//判断 map 中是否含有当前字母if (map.containsKey(char_right)) {//当前的字母次数减一map.put(char_right, map.get(char_right) - 1);//开始移动左指针,减小窗口while (match(map)) { //如果当前窗口包含所有字母,就进入循环//当前窗口大小int temp_len = right - left + 1;//如果当前窗口更小,则更新相应变量if (temp_len < ans_len) {ans_left = left;ans_right = right;ans_len = temp_len;}//得到左指针的字母char key = s.charAt(left);//判断 map 中是否有当前字母if (map.containsKey(key)) {//因为要把当前字母移除,所有相应次数要加 1map.put(key, map.get(key) + 1);}left++; //左指针右移}}//右指针右移扩大窗口right++;}return s.substring(ans_left, ans_right+1);
}//判断所有的 value 是否为 0
private boolean match(Map<Character, Integer> map) {for (Integer value : map.values()) {if (value > 0) {return false;}}return true;
}

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

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

相关文章

【LeetCode】每日一题 2023_11_21 美化数组的最少删除数(贪心/模拟)

文章目录 刷题前唠嗑题目&#xff1a;美化数组的最少删除数题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 原本今天早上要上体育课&#xff0c;没那么早刷每日一题的&#xff0c;本周是体测周&#xff0c;所以体育课取消了&am…

Linux系统中sz和rz命令详解(文件传输、上传、下载)

rz和sz是Linux/Unix同Windows进行Zmodem文件传输的命令工具,都使用Zmodem文件传输协议。 rz&#xff08;上传命令&#xff09;: 运行该命令会弹出一个文件选择窗口&#xff0c;从本地选择文件上传到Linux服务器。 (receive zmodem的缩写)…

MySQL 教程 1.1

MySQL 教程1.1 MySQL 是最流行的关系型数据库管理系统&#xff0c;在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System&#xff1a;关系数据库管理系统)应用软件之一。 在本教程中&#xff0c;会让大家快速掌握 MySQL 的基本知识&#xff0c;并轻松…

放大招:腾讯云5年服务器和3年轻量应用服务器租用价格表

腾讯云3年轻量和5年云服务器CVM优惠活动入口&#xff0c;3年轻量应用服务器配置可选2核2G4M和2核4G5M带宽&#xff0c;5年CVM云服务器可以选择2核4G和4核8G配置可选&#xff0c;阿腾云atengyun.com分享腾讯云3年轻量应用服务器和5年云服务器CVM优惠活动入口和配置报价&#xff…

【点云上采样】最近邻插值上采样算法

文章目录 声明简介代码 声明 本帖更新中 简介 点云最近邻插值上采样算法是一种常见的点云处理方法&#xff0c;用于将稀疏的点云数据进行上采样&#xff0c;增加点云的密度和细节。该算法基于最近邻的原理&#xff0c;在已有的点云数据中找到最近邻的点&#xff0c;并根据其…

【Spring】bean的基础配置

bean的别名 当在Spring config文件中定义name作为别名后&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…

基于SSM的社区生鲜商城的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

django自带的cache无法多进程共享

问题&#xff1a; from django.core.cache import cache 在登录接口中我使用 django 自带的cache 来进行缓存token&#xff0c; 同时使用 uwsgi 来部署django项目&#xff0c;配置了 4 个 worker 来接收用户请求&#xff0c;当用户请求带着token到达时&#xff0c;用户携带的…

【三种加载自定义控制器的方式 Objective-C语言】

一、关于这个手动创建Window呢,给大家说完了 1.但是呢,要给大家补充一个东西, 有时候,有的框架,可能会用到什么东西呢,我写到下面: [UIApplication sharedApplication] 什么东西,是不是应用程序对象, 然后呢,keyWindow 是不是拿到它的主窗口, 然后呢,add什么东西…

2023年11月中旬大模型新动向集锦

2023年11月中旬大模型新动向集锦 2023.11.21版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、谷歌生成式 AI 搜索生成体验&#xff08;SGE&#xff09;扩展到 120 多个新国家/地区 近日&#xff0c;Google 扩展了其由生成式人工智能驱…

在 Windows 中关闭 Nginx 所有进程

在 Windows 中关闭 Nginx 所有进程并强制重启的命令如下&#xff1a; 打开命令提示符&#xff08;CMD&#xff09;。 输入以下命令来查找 Nginx 进程的 PID&#xff1a; tasklist /fi "imagename eq nginx.exe"此命令将列出所有名为 nginx.exe 的进程以及它们的 PID…

JavaScript-undefined和null区别

更多内容&#xff0c;请访问&#xff1a; 声明和定义区别 JavaScript-变量类型 JavaScript-变量类型判断 JavaScript-如何使用变量 undefined&#xff08;未定义&#xff09; 当一个变量只声明&#xff0c;未赋值时&#xff0c;当前变量会设置为undefined&#xff1b; 当前一…

mybatis使用foreach标签实现union集合操作

最近遇到一个场景就是Java开发中&#xff0c;需要循环多个表名&#xff0c;然后用同样的查询操作分别查表&#xff0c;最终得到N个表中查询的结果集合。在查询内容不一致时Java中跨表查询常用的是遍历表名集合循环查库&#xff0c;比较耗费资源&#xff0c;效率较低。在查询内容…

Arthas使用教程

文章目录 一、简介 1、简介 2、项目所在位置 二、安装Arthas 1、安装Arthas 2、卸载Arthas 3、首次启动。 三、核心监视功能 1、monitor&#xff1a;监控方法的执行情况 2、watch&#xff1a;检测函数返回值 3、trace&#xff1a;根据路径追踪&#xff0c;并记录消耗时间 4、st…

真伪问题_头歌

第1关&#xff1a;真伪问题 StuList [A, B, C, D] for stu in StuList:print("若", stu, "同学考了60分")if stu ! B:print("B同学说了真话")else:print("B同学说了假话")if stu C:print("A同学说了真话")else:print(&qu…

有SSL证书的网站更容易收录吗?

企业有了网站自然也就少不了网站优化方面的工作&#xff0c;这样可以获得更好的排名和流量。而一个网站要想在互联网中立足&#xff0c;首先就需要确保其安全性和可信任性&#xff0c;因此大家往往都会利用SSL证书来保护网站和用户数据&#xff0c;它可以在服务器和用户设备之间…

22款奔驰GLE450升级原厂360全景影像 超广角的视野

360全景影像影像系统提升行车时的便利&#xff0c;不管是新手或是老司机都将是一个不错的配置&#xff0c;无论是在倒车&#xff0c;挪车以及拐弯转角的时候都能及时关注车辆所处的环境状况&#xff0c;避免盲区事故发生&#xff0c;提升行车出入安全性。 360全景影像包含&…

Vite3构建Vue3项目

文章目录 Vite3构建Vue3项目Vite1、创建vite3项目2、安装依赖3、运行vite项目4、安装路由src目录下&#xff0c;添加加router/index.jsmain.js导入router 5、axiosaxios配置 引入element-plus1、安装2、引入1、完整引入2、按需导入1、自动导入 Vite3构建Vue3项目 Vite 什么是…

重要功能丨支持1688API 接口对接一键跨境铺货及采购,解决跨境卖家货源烦恼!

在跨境电商运营中&#xff0c;不少卖家都会优先选择1688平台产品作为跨境店铺货源。 必不可少的1688商品详情接口 阿里巴巴中国站获得1688商品详情 API 返回值说明 item_get-获得1688商品详情 1688.item_get 公共参数 请求地址: 申请调用KEY测试 名称类型必须描述keyStrin…

企企通亮相广东智能装备产业发展大会:以数字化采购促进智能装备产业集群高质量发展

制造业是立国之本&#xff0c;是国民经济的主要支柱、是推动工业技术创新的重要来源。 广东作为我国制造业大省&#xff0c;装备制造业规模增长快速&#xff0c;技术水平居于全国前列。为全面贯彻学习党的二十大精神&#xff0c;进一步推动机械装备可靠性设计&#xff0c;促进新…