Leetcode 76. 最小覆盖子串
76. 最小覆盖子串 - 力扣(LeetCode)
class Solution {/**也是滑动窗口,思路简单,但实现起来容易出错。一个tmap记录目标串t的各个字符出现的次数;一个smap记录原串的某个滑动窗口里字符出现次数。两个指针left,right都从0开始,用right遍历原串s,如果smap包含了所有tmap的kv,那么肯定就匹配上了,这个时候呢,就更新left,进行++操作,每加一次,就看是不是不满足smap包含了所有tmap的kv,如果不满足就停止left的++。*/public String minWindow(String s, String t) {if(s == null || t==null || s.length()==0 || t.length()==0){return "";}Map<Character,Integer> targetMap=new HashMap<>();// 这里其实也可以用charAtfor(char c:t.toCharArray()){targetMap.put(c,targetMap.getOrDefault(c,0)+1);}int left=0,right=0;// t字符串里不同字符的数量int tCnt=targetMap.size();int sCnt=0;//Integer.MAX_VALUEint start=0,minLen=1000005;Map<Character,Integer> sMap=new HashMap<>();while(right<s.length()){char c=s.charAt(right);sMap.put(c,sMap.getOrDefault(c,0)+1);if(targetMap.containsKey(c) && sMap.get(c).intValue()==targetMap.get(c).intValue()){sCnt++;}// right-left-1,因为下标left到right之间字符串的长度范围是right-left+1,减去1等于t.length,这个长度才是真实的临界值while(sCnt==tCnt && right-left-1>=t.length()){char sc=s.charAt(left);if(right-left+1<minLen){start=left;minLen=right-left+1;}sMap.put(sc,sMap.get(sc)-1);left++;if(targetMap.containsKey(sc) && sMap.get(sc).intValue()<targetMap.get(sc).intValue()){// 说明匹配的子串字符种类数不一样了,left就不能再++了sCnt--;}}right++;}return minLen==1000005?"":s.substring(start,start+minLen);}
}
相关文章:
Leetcode 76. 最小覆盖子串
76. 最小覆盖子串 - 力扣(LeetCode) class Solution {/**也是滑动窗口,思路简单,但实现起来容易出错。一个tmap记录目标串t的各个字符出现的次数;一个smap记录原串的某个滑动窗口里字符出现次数。两个指针left&#x…...
JAVAWEB--Mybatis03
Mybatis映射 什么是映射器 MyBatis的映射器就是用来解决这一问题,映射器其实是一个Interface接口,我们通过编写简单的映射器接口,就可以将我们之前在Dao中做的重复的,看起来比较低级的代码给替换掉。也就是说我们以后不用向之前那样写代码&…...
论文学习_Fuzz4All: Universal Fuzzing with Large Language Models
论文名称发表时间发表期刊期刊等级研究单位Fuzz4All: Universal Fuzzing with Large Language Models2024年arXiv-伊利诺伊大学 0.摘要 研究背景模糊测试再发现各种软件系统中的错误和漏洞方面取得了巨大的成功。以编程或形式语言作为输入的被测系统(SUTÿ…...
元数据相关资料整理 metadata
目录 定义和特点 关注点 流程 使用场景 元数据影响分析 元数据冷热度分析 元数据关联度分析 血缘分析 数据地图 元数据接口 相关产品的架构图 定义和特点 元数据(Metadata)是指关于数据的数据,或者说是描述数据的数据。它提供了一…...
【Android面试八股文】谈一谈你对http和https的关系理解
文章目录 HTTPHTTPSSSL/TLS协议HTTPS加密、解密流程HTTP 和 HTTPS 的关系具体的差异实际应用总结扩展阅读HTTP(HyperText Transfer Protocol)和HTTPS(HyperText Transfer Protocol Secure)是用于在网络上进行通信的两种协议。 它们在很多方面是相似的,但关键的区别在于安全…...
Vue3 中 setup 函数与 script setup 用法总结
在 Vue3 中,setup 函数和 script setup 是两种新引入的编写组件的方式,它们都是 Composition API 的一部分。 setup 函数: setup 函数是一个新的组件选项,它作为在组件内使用 Composition API 的入口。在 setup 函数中,我们可以定…...
Springboot 开发之任务调度框架(一)Quartz 简介
一、引言 常见的定时任务框架有 Quartz、elastic-job、xxl-job等等,本文主要介绍 Spirng Boot 集成 Quartz 定时任务框架。 二、Quartz 简介 Quartz 是一个功能强大且灵活的开源作业调度库,广泛用于 Java 应用中。它允许开发者创建复杂的调度任务&…...
企业中面试算法岗时会问什么pytorch问题?看这篇就够了!
如果要面试深度学习相关的岗位,JD上一般会明确要求要熟悉pytorch或tensorflow框架,那么会一般问什么相关问题呢? 文章目录 一. 基础知识与概念1.1 PyTorch与TensorFlow的主要区别是什么? 1.2 解释一下PyTorch中的Tensor是什么&…...
【学习】程序员资源网址
1 书栈网 简介:书栈网是程序员互联网IT开源编程书籍、资源免费阅读的网站,在书栈网你可以找到很多书籍、笔记资源。在这里,你可以根据热门收藏和阅读查看大家都在看什么,也可以根据技术栈分类找到对应模块的编程资源,…...
【3D模型库】机械三维模型库整理
1 开拔网 简介:开拔网是中国较早的机械设计交流平台,广受行业内的各个大学,公司以及行业人士的欢迎。网站有非常丰富的3D模型,CAD图纸,以及各类热门软件的下载。同时我们也为行业搭建一个平台,提供各类设计…...
基于Python-CNN深度学习的物品识别
基于Python-CNN深度学习的物品识别 近年来,深度学习尤其是卷积神经网络(CNN)的快速发展,极大地推动了计算机视觉技术的进步。在物品识别领域,CNN凭借其强大的特征提取和学习能力,成为了主流的技术手段之一…...
Qt | 简单的使用 QStyle 类(风格也称为样式)
01、前言 者在 pro 文件中已添加了正确的 QT+=widgets 语句 02、基础样式 1、QStyle 类继承自 QObject,该类是一个抽像类。 2、QStyle 类描述了 GUI 的界面外观,Qt 的内置部件使用该类执行几乎所有的绘制,以确保 使这些部件看起来与本地部件完全相同。 3、Qt 内置了一系…...
Idea连接GitLab的过程以及创建在gitlab中创建用户和群组
上期讲述了如何部署GitLab以及修复bug,这期我们讲述,如何连接idea。 首先安装gitlab插件 下载安装idea上并重启 配置ssh免密登录 使用管理员打开命令行输入:ssh-keygen -t rsa -C xxxaaa.com 到用户目录下.ssh查看id_rsa.pub文件 打开复制…...
关于glibc-all-in-one下载libc2.35以上报错问题
./download libc版本 下载2.35时报错:原因是缺少解压工具zstd sudo apt-get install zstd 下载后重新输命令就可以了 附加xclibc命令 xclibc -x ./pwn ./libc-版本 ldd pwn文件 xclibc -c libc版本...
C语言之#define #if 预处理器指令
在 C 语言中,预处理器指令用于条件编译代码。你可以使用 #define 和 #if 指令来根据某些条件包含或排除代码块。以下是一个完整的例子,演示了如何使用 #define 和 #if 指令来控制代码的编译: #include <stdio.h>// 定义宏 MERGE_TYPE …...
modbus流量计数据解析(4个字节与float的换算)
通过modbus协议从流量计中读取数据后,需要将获得的字节数据合成float类型。以天信流量计为例: 如何将字节数据合并成float类型呢?这里总结了三种方法。 以温度值41 A0 00 00为例 目录 1、使用char*逐字节解析2、使用memcpy转换2、使用联合体…...
关于element-plus中el-select自定义标签及样式的问题
关于element-plus中el-select自定义标签及样式的问题 我这天天的都遇到各种坑,关于自定义,我直接复制粘贴代码都实现不了,研究了一下午,骂骂咧咧了一下午,服气了。官网代码实现不了,就只能 “ 曲线救国 ”…...
硕思logo设计师下载-2024官方最新版-logo制作软件安装包下载
硕思Logo设计师是一款操作灵活简单、功能强大的logo制作软件。可以通过简单的点击就可以为网站、博客、论坛和邮件创建专业的logo、条幅、按钮、标题、图标和签名等。 硕思logo设计师提供了很多精心设计的模板和丰富的资源,为更好的创建logo艺术作品…...
springboot和mybatis项目学习
#项目整体样貌 ##bean package com.example.demo.bean;public class informationBean {private int id;private String name;private String password;private String attchfile;public int getId() {return id;}public String getName() {return name;}public String getPas…...
simdjson 高性能JSON解析C++库
simdjson 是什么 simdjson 是一个用来解析JSON数据的 C 库,它使用常用的 SIMD 指令和微并行算法来每秒解析千兆字节的 JSON,在Velox, ClickHouse, Doris 中均有使用。 加载和解析 JSON documents 出于性能考虑,simdjson 需要一个末尾有几个…...
量子退火与经典优化结合的金融投资组合优化实践
1. 量子退火与经典优化结合的金融投资组合优化实践在金融投资领域,如何构建最优投资组合一直是核心挑战。传统方法如现代投资组合理论(MPT)和均值-方差优化(MVO)虽然奠定了理论基础,但在处理大规模资产配置时往往面临计算效率瓶颈。近年来,量…...
ARM Cortex-A5 SCU架构与多核缓存一致性解析
1. ARM Cortex-A5 SCU架构解析SCU(Snoop Control Unit)是Cortex-A5多核处理器中的关键组件,主要负责维护多核间的缓存一致性。当某个CPU核心修改了共享内存区域的数据时,SCU会自动通知其他核心的缓存进行更新或失效操作。这种机制…...
如何加入GEO从入门到精通知识星球?
很多人学了GEO理论,却不知道怎么落地——因为GEO不是靠手动摸索能高效完成的,它需要工具支撑每一个环节。GEO优化分三个核心环节,每个环节都有对应的工具。第一环节:问题挖掘用什么工具:GEO之家问题大师传统SEO靠关键词…...
红外对射传感器实战指南:从原理到Arduino/CircuitPython应用
1. 项目概述红外对射传感器,也叫红外遮断传感器,是我在自动化项目和互动装置里用得最多的基础传感器之一。它原理简单直接,但用好了能解决很多实际问题,比如统计人流、检测传送带上的物品、制作一个简单的防盗报警器,或…...
矩阵Zig-Zag遍历:对角线路径的优雅实现
矩阵Zig-Zag遍历:对角线路径的优雅实现 最近刷题遇到一个很有意思的矩阵遍历问题:如何以Zig-Zag(之字形)的方式打印一个二维矩阵? 什么是Zig-Zag遍历? 简单来说,就是从矩阵的左上角开始&#…...
顶伯 + 微软 TTS,3 分钟生成专业级解说配音
🎯 顶伯 微软 TTS,3 分钟生成专业级解说配音告别繁琐录音,用顶伯文字转语音工具快速打造高品质配音。✨ 一、为什么选择顶伯与微软 TTS 的组合?在视频制作、课程讲解或产品演示中,配音质量直接影响观众体验。 顶伯文字…...
Altium Designer20 从零到一:新手必备的安装与核心功能上手指南
1. Altium Designer20安装全攻略 第一次接触Altium Designer20(简称AD20)时,我和大多数电子设计新手一样,面对这个专业软件既兴奋又忐忑。记得当时为了完成课程设计,我在宿舍折腾了整整一个下午才搞定安装。现在回想起…...
Ovito模块在Python环境下的兼容性排查与实战配置指南
1. 为什么你的Ovito模块总是安装失败? 每次看到那个红色的报错提示,我都想砸键盘。去年给实验室配LAMMPS后处理环境时,光Ovito模块就折腾了我三天。后来才发现,90%的问题都出在Python环境上。Windows系统里32位和64位Python就像两…...
电解电容核心参数解析:从ESR、纹波电流到选型实战
1. 项目概述:从“黑疙瘩”到电路心脏在电子工程师的物料盒里,电解电容绝对是个让人又爱又恨的家伙。它不像电阻那样温顺稳定,也不像芯片那样精密复杂,它就是个黑乎乎的圆柱体,或者扁平的方块,上面印着一些让…...
交通一线运维优选:Smart-S3 多模光时域反射仪
铁路、高速公路现场运维常需轻便、快速、易用的光纤检测工具,Smart-S3 多模光时域反射仪以超轻机身和稳定性能,成为一线巡检与抢修的理想选择。Smart-S3 多模光时域反射仪是一款便携式光纤测试仪表,可精准测量光缆长度、损耗、故障点位置&…...
