算法-字符串-76.最小覆盖子串
一、题目

二、思路解析
1.思路:
滑动窗口!!!
2.常用方法:
无
3.核心逻辑:
1.特殊情况:s或t是否为空字符串
if(s==null||t==null)return "";
2.声明一个字符数组——用于记录对应字符出现的次数;声明一个遍历cnt——记录t字符串中字符的种类数量;
char[]ch=new char[128];
int cnt=0;
//遍历字符串t
for(int i=0;i<t.length();i++){if(ch[t.charAt(i)]==0)cnt++;ch[t.charAt(i)]++;
}
3. 遍历字符串s,窗口进行滑动;
a.窗口扩容,对当前字符所在的数组中的所记录的次数减一;判断当前字符所在的数组的记录次数是否为0,如果为0,cnt--(表示为已经覆盖了t字符串中对应的字符的一种)
b.当cnt==0时,表示已经包含了t中的所有字符;然后更新最小的覆盖子串长度
c.缩容,将起始位置向右移动
三、代码实现
class Solution {public String minWindow(String s, String t) {if(s==null||t==null)return "";char[]ch=new char[128];int cnt=0;for(int i=0;i<t.length();i++){if(ch[t.charAt(i)]==0)cnt++;ch[t.charAt(i)]++;}int resLeft=-1;int resRight=s.length();int left=0;for(int right=0;right<s.length();right++){ch[s.charAt(right)]--;if(ch[s.charAt(right)]==0)cnt--;while(cnt==0){if(resRight-resLeft>right-left){resLeft=left;resRight=right;}if(ch[s.charAt(left)]==0)cnt++;ch[s.charAt(left)]++;left++;}}return resLeft<0?"":s.substring(resLeft,resRight+1);}
}
相关文章:
算法-字符串-76.最小覆盖子串
一、题目 二、思路解析 1.思路: 滑动窗口!!! 2.常用方法: 无 3.核心逻辑: 1.特殊情况:s或t是否为空字符串 if(snull||tnull)return ""; 2.声明一个字符数组——用于记录对应字符出现…...
Python爬虫之Selenium的应用
【1】Selenium基础介绍 1.什么是selenium? (1)Selenium是一个用于Web应用程序测试的工具。 (2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。 (3)支持通过各种driv…...
粉丝生产力与开源 AI 智能名片 2+1 链动模式商城小程序的融合创新与价值拓展
摘要:本文聚焦于粉丝生产力在当代文化与商业语境中的独特作用,并深入探讨其与开源 AI 智能名片 21 链动模式商城小程序的有机结合。通过剖析粉丝生产力的多元表现形式、内在驱动机制以及开源 AI 智能名片 21 链动模式商城小程序的功能特性与商业潜力&…...
红黑树(Red-Black Tree)
一、概念 红黑树(Red Black Tree)是一种自平衡的二叉搜索树,通过添加颜色信息来确保在进行插入和删除操作时,树的高度保持在对数级别,从而保证了查找、插入和删除操作的时间复杂度为 O(log n)。这种树可以很好地解决普…...
Cocos 资源加载(以Json为例)
resources 通常我们会把项目中需要动态加载的资源放在 resources 目录下,配合 resources.load 等接口动态加载。你只要传入相对 resources 的路径即可,并且路径的结尾处 不能 包含文件扩展名。 resources.load("Inf", JsonAsset, (error, ass…...
解决 IntelliJ IDEA 启动错误:插件冲突处理
引言 在使用 IntelliJ IDEA 进行开发时,我们可能会遇到各种启动错误。本文将详细介绍一种常见的错误:插件冲突,并提供解决方案。 错误背景 最近,有用户在启动 IntelliJ IDEA 时遇到了一个错误,提示信息为:…...
SQL——DQL分组聚合
分组聚合: 格式: select 聚合函数1(聚合的列),聚合函数2(聚合的列) from 表名 group by 标识列; ###若想方便分辨聚合后数据可在聚合函数前加上标识列(以标识列进行分组) 常见的聚合函数: sum(列名):求和函数 avg(列名)…...
Ripro V5日主题 v8.3 开心授权版 wordpress主题虚拟资源下载站首选主题模板
RiPro主题全新V5版本,是一个优秀且功能强大、易于管理、现代化的WordPress虚拟资源商城主题。支持首页模块化布局和WP原生小工具模块化首页可拖拽设置,让您的网站设计体验更加舒适。同时支持了高级筛选、自带会员生态系统、超全支付接口等众多功能&#…...
分布式搜索引擎之elasticsearch基本使用2
分布式搜索引擎之elasticsearch基本使用2 在分布式搜索引擎之elasticsearch基本使用1中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以j接下来,我们研究下…...
java学习-第十五章-IO流(java.io包中)
一、理解 1. 简单而言:流就是内存与存储设备之间传输数据的通道、管道。 2. 分类: (1) 按方向(以JVM虚拟机为参照物)【重点】 输入流:将中的内容读入到中。 输出流:将中的内容写入到中。 (2) 按单位: 字节流…...
企业如何实现数据从源端到消费端的全链路加工逻辑可视化?
要想实现数据加工链路的可视化,血缘图谱无疑是一个有效的工具。血缘图谱能够清晰地展示数据从产生、流转、加工到最终消费的每一个环节,帮助企业直观地理解数据之间的关联和依赖关系,轻松追溯数据来源和去向,并在数据出现问题时快…...
Toxicity of the Commons: Curating Open-Source Pre-Training Data
基本信息 📝 原文链接: https://arxiv.org/abs/2410.22587👥 作者: Catherine Arnett, Eliot Jones, Ivan P. Yamshchikov, Pierre-Carl Langlais🏷️ 关键词: toxicity filtering, language models, data curation📚 分类: 机器…...
Python 单例模式工厂模式和classmethod装饰器
前言: Python作为面向对象的语言,显然支持基本的设计模式。也具备面向对象的语言的基本封装方法:属性、方法、继承、多态等。但是,做为强大的和逐渐发展的语言,python也有很多高级的变种方法,以适应更多的…...
计算机键盘简史 | 键盘按键功能和指法
注:本篇为 “计算机键盘简史 | 键盘按键功能和指法” 相关文章合辑。 英文部分机翻未校。 The Evolution of Keyboards: From Typewriters to Tech Marvels 键盘的演变:从打字机到技术奇迹 Introduction 介绍 The keyboard has journeyed from a humb…...
【数字信号处理】期末综合实验,离散时间信号与系统的时域分析,离散信号 Z 变换,IIR 滤波器的设计与信号滤波,用窗函数法设计 FIR 数字滤波器
关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…...
面试技术点之安卓篇
一、基础 二、高级 三、组件 Android中SurfaceView和TextureView有什么区别? 参考 Android中SurfaceView和TextureView有什么区别? 四、三方框架 五、系统源码 六、性能优化...
Windows Terminal ssh到linux
1. windows store安装 Windows Terminal 2. 打开json文件配置 {"$help": "https://aka.ms/terminal-documentation","$schema": "https://aka.ms/terminal-profiles-schema","actions": [{"command": {"ac…...
自适应卡尔曼滤波(包括EKF、UKF、CKF等)的创新思路——该调什么、不该调什么
在调节自适应卡尔曼滤波时,需要注意的参数和矩阵都对滤波器的性能有直接影响。本文给出详细的说明,包括相关公式和 MATLAB 代码示例 文章目录 需要调节的参数1. **过程噪声协方差矩阵 Q Q Q**:2. **测量噪声协方差矩阵 R R R**:…...
SpringBoot项目监听端口接受数据(NIO版)
文章目录 前言服务端相关配置核心代码 客户端 前言 环境: JDK:64位 Jdk1.8 SpringBoot:2.1.7.RELEASE 功能: 使用Java中原生的NIO监听端口接受客户端的数据,并发送数据给客户端。 服务端 相关配置 application.ym…...
QT实战--带行号的支持高亮的编辑器实现(2)
本文主要介绍了第二种实现带行号的支持高亮的编辑器的方式,基于QTextEdit实现的,支持自定义边框,背景,颜色,以及滚动条样式,支持输入变色,复制文本到里面变色,支持替换,是一个纯专业项目使用的编辑器 先上效果图: 1.头文件ContentTextEdit.h #ifndef CONTENT_TEXT_…...
R16增强型Type II码本:空频域联合压缩与量化反馈机制解析
1. R16增强型Type II码本的技术背景 在5G Massive MIMO系统中,信道状态信息(CSI)反馈的精度和效率直接影响着系统性能。R15 Type II码本虽然已经实现了空域压缩,但随着频段向毫米波延伸和天线规模扩大,传统方案面临反馈…...
无损视频剪辑终极指南:如何用LosslessCut保持原始画质快速编辑
无损视频剪辑终极指南:如何用LosslessCut保持原始画质快速编辑 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在视频编辑的世界里,质量与速度…...
FastMind:比 LangGraph 更轻量的 Python Agent 框架
在 AI Agent 开发领域,LangGraph 是一个知名的框架,但如果你正在寻找一个更轻量、更简洁、更适合快速开发的替代方案,那么 FastMind 值得你关注。 项目定位 LangGraph 定位: 企业级 Agent 开发框架特点: 功能全面,支持复杂工作流复…...
埃拉托斯特尼筛法(埃氏筛)完整解析
一、算法用途 快速找出 2 ~ n 之间的所有素数。 暴力判断每个数:O(nn) 埃氏筛:O(nloglogn),接近线性,极快。 二、核心思想 先假设所有数都是素数。 从最小素数 2 开始,把它的所有倍数标记为合数。 取下一个没被标记的数(一定是素数),继续标记它的倍数。 最后没被标记…...
如何免费快速备份你的QQ空间记忆:GetQzonehistory完整指南
如何免费快速备份你的QQ空间记忆:GetQzonehistory完整指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经担心过QQ空间里的那些珍贵回忆会随着时间流逝而消失&am…...
BT33F双基二极管的基本特性
简 介: 本文测试了BT33F双基二极管的特性,发现其发射极对两个基极呈现不同导通电压(0.86V和1.6V),B1、B2间电阻约13KΩ。实验表明,只有当B1接地、B2接5V电源时,电路才能产生46Hz的振荡信号&…...
Java 25 FFI与C++ ABI不兼容?GCC 13/Clang 18符号修饰差异导致段错误的逆向工程溯源(含LLVM IR级对比图)
第一章:Java 25 FFI与C ABI不兼容问题的现场复现与现象确认Java 25 引入的 Foreign Function & Memory API(FFI)在调用 C 原生函数时,因 C ABI(Application Binary Interface)未被标准化支持࿰…...
OLAP] DuckDB : 开源免费的、面向嵌入式场景、列式存储的分析型数据库
0 序 DuckDB 是近期非常火的一款 AP 数据库,其独特的定位很有趣。甚至有数据库产品考虑将其纳入进来,作为分析能力的扩展。 考虑到项目中一个数据处理场景,就此调研一二。 DuckDB 的爆火,也给所有盲目追逐“大数据”的技术人敲响…...
别再让AI单打独斗了:用MCP协议手把手教你搭建一个能‘对话’的智能体协作系统
从零构建智能体协作系统:基于MCP协议的周末旅行规划实战 想象一下这样的场景:周五晚上,你对着手机说"帮我规划一个去杭州的周末旅行",30秒后,一份完整的行程建议出现在屏幕上——包含根据实时天气推荐的穿搭…...
继电器触点粘接?手把手教你用NTC热敏电阻搞定大功率负载保护
大功率负载下继电器触点粘接的工程解决方案:NTC热敏电阻实战指南 当你在深夜调试一块电源板时,突然闻到焦糊味——继电器又粘接了。这不是个例,据统计,工业控制系统中约23%的继电器故障源于触点粘接,而大电流场景下这一…...
