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

力扣labuladong——一刷day10

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣76. 最小覆盖子串
  • 二、力扣567. 字符串的排列
  • 三、力扣438. 找到字符串中所有字母异位词
  • 四、力扣3. 无重复字符的最长子串


前言


一、力扣76. 最小覆盖子串

class Solution {public String minWindow(String s, String t) {Map<Character,Integer> need = new HashMap<>();Map<Character,Integer> window = new HashMap<>();for(char c : t.toCharArray()){need.put(c,need.getOrDefault(c,0)+1);}int left = 0, right = 0, indexLeft = 0, len = Integer.MAX_VALUE, vaild = 0;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).equals(need.get(c))){vaild ++;}}//缩小窗口while(vaild == need.size()){//更新收集结果if(right - left < len){len = right - left;indexLeft = left;}char cur = s.charAt(left);left ++;//缩小窗口if(need.containsKey(cur)){if(need.get(cur).equals(window.get(cur))){vaild --;}window.put(cur,window.get(cur)-1);}}}return len == Integer.MAX_VALUE ? "" : s.substring(indexLeft,indexLeft+len);}
}

二、力扣567. 字符串的排列

class Solution {public boolean checkInclusion(String s1, String s2) {Map<Character,Integer> need = new HashMap<>();Map<Character,Integer> window = new HashMap<>();for(char c : s1.toCharArray()){need.put(c,need.getOrDefault(c,0)+1);}int left = 0, right = 0, vaild = 0; boolean flag = false;while(right < s2.length()){char c = s2.charAt(right);right ++;if(need.containsKey(c)){window.put(c,window.getOrDefault(c,0)+1);if(need.get(c).equals(window.get(c))){vaild ++;}}while(right - left >= s1.length()){if(vaild == need.size()){return true;}char cur = s2.charAt(left);left ++;if(need.containsKey(cur)){if(need.get(cur).equals(window.get(cur))){vaild --;}window.put(cur,window.get(cur)-1);}}}return false;}
}

三、力扣438. 找到字符串中所有字母异位词

class Solution {public List<Integer> findAnagrams(String s, String p) {List<Integer> res = new ArrayList<>();Map<Character, Integer> need = new HashMap<>();Map<Character, Integer> window = new HashMap<>();for(char c : p.toCharArray()){need.put(c,need.getOrDefault(c,0)+1);}int left = 0, right = 0, vaild = 0;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).equals(need.get(c))){vaild ++;}}while(right - left >= p.length()){//收集if(vaild == need.size()){res.add(left);}//缩小窗口char cur = s.charAt(left);left ++;//调整窗口if(need.containsKey(cur)){if(window.get(cur).equals(need.get(cur))){vaild --;}window.put(cur,window.get(cur)-1);}}}return res;}
}

四、力扣3. 无重复字符的最长子串

class Solution {public int lengthOfLongestSubstring(String s) {int res = 0;Map<Character, Integer> window = new HashMap<>();int left = 0, right = 0;while(right < s.length()){char c = s.charAt(right);right ++;window.put(c,window.getOrDefault(c,0)+1);while(window.get(c) > 1){char cur = s.charAt(left);left ++;window.put(cur,window.get(cur)-1);}res = Math.max(res,right-left);}return res;}
}

相关文章:

力扣labuladong——一刷day10

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣76. 最小覆盖子串二、力扣567. 字符串的排列三、力扣438. 找到字符串中所有字母异位词四、力扣3. 无重复字符的最长子串 前言 一、力扣76. 最小覆盖子串…...

https下载图片

OpenSSL用法示例 OpenSSL源码安装 对于ubuntu&#xff0c;懒得编译源码可以直接安装 sudo apt-get install libssl–dev /usr/include/openssl/ssl.h CMakeLists中添加 link_libraries(ssl crypto) apt-get安装不需要再制定libssl.a, libcrypto.a的路径了, 就像用libc标…...

二叉树的后续遍历(迭代法)

迭代法实现二叉树的后续遍历 1、递归版本 public static void dfs(TreeNode root){if(rootnull){return;}if(root.left!null)dfs(root.left);if(root.right!null)dfs(root.right);System.out.println(root.val); }从递归版本可以看出我们第一步需要遍历完所有的左节点 这里我…...

CVE-2021-41773/42013 apache路径穿越漏洞

影响范围 CVE-2021-41773 Apache HTTP server 2.4.49 CVE-2021-42013 Apache HTTP server 2.4.49/2.4.50 漏洞原理 Apache HTTP Server 2.4.49版本使用的ap_normalize_path函数在对路径参数进行规范化时会先进行url解码&#xff0c;然后判断是否存在…/的路径穿越符&#xf…...

前端性能测试工具WebPagetest

简介&#xff1a;一款web性能在线性能评测工具&#xff0c;可测试有关页面在各种条件下的性能&#xff0c;并且提供深入诊断信息。 WebPagetest 的主页&#xff1a;https://www.webpagetest.org/&#xff0c;也就是工具的使用界面。 注意&#xff1a;WebPageTest 并不是完全免…...

易语言软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作

随着信息技术的不断发展&#xff0c;易语言软件定制开发已成为许多公司的一项重要业务。本文将探讨如何利用易语言承接软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作。 一、易语言概述 易语言是一种简单易学的编程语言&#xff0c;它采用中文编程&#xff…...

Windows上配置IP端口转发

在通常涉及到使用网络地址转换&#xff08;NAT&#xff09;规则&#xff0c;可以使用一些工具和命令行选项来实现。以下是在Windows上配置端口转发的一般步骤&#xff1a; **注意&#xff1a;端口转发需要管理员权限&#xff0c;因此请确保以管理员身份运行命令行工具。** 1.…...

韦东山D1S板子——汇编启动代码第一行分析(.long 0x0300006f)

1、汇编启动源码 2、分析二进制&#xff1a;0x0300006f 2.1、反汇编代码 2.2、jal指令 jal指令的作用&#xff1a;跳转到当前PC值偏移offset处执行&#xff0c;其中offset由jal指令的bi[31:12]表示&#xff1b; 2.3、分析指令&#xff1a;j 20030 <reset> j 20030 //伪…...

了解单域名证书和通配符证书的区别,选择合适的SSL证书解决方案

随着互联网的不断发展&#xff0c;网站安全性问题一直备受关注&#xff0c;在保护网站数据安全的过程中&#xff0c;SSL证书一直发挥着至关重要的作用。而在选择SSL证书时&#xff0c;单域名证书和通配符证书是两种常见的选择。本文将详细介绍单域名证书和通配符证书的区别&…...

【LeetCode】7. 整数反转

题目链接 文章目录 Python3官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯写法2写法3 C官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯ Python3 官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1…...

防止请求重复提交:注解+拦截器的实现方案

文章目录 了解请求重复提交解决思路具体实现 了解请求重复提交 请求重复提交是指用户在一次请求还未处理完成时&#xff0c;重复提交了相同的请求。这种情况通常发生在网络延迟、用户误操作或系统性能不佳等情况下。 请求重复提交可能会导致以下问题和影响&#xff1a; 数据不…...

C#使用mysql-connector-net驱动连接mariadb报错

给树莓派用最新的官方OS重刷了一下&#xff0c;并且用apt install mariadb-server装上“mysql”作为我的测试服务器。然后神奇的事情发生了&#xff0c;之前用得好好的程序突然就报错了&#xff0c;经过排查&#xff0c;发现在连接数据库的Open阶段就报错了。写了个最单纯的Con…...

SpringBoot 定时任务:@EnableScheduling @Scheduled

Scheduled注解参数 cron参数 这个参数是最经常使用的参数&#xff0c;表示接收一个cron参数&#xff0c;cron它是一个表达式&#xff0c;最多接收7个参数&#xff0c;从左到右分别表示&#xff1a;秒 分 时 天 月 周 年&#xff1b;参数以空格隔开&#xff0c;其中年不是必须参…...

Jquery 如何获取子元素。如何找到所有 HTML select 标签的选中项。jQuery 里的 ID 选择器和 class 选择器有何不同

可以使用 jQuery 的子选择器&#xff08;Child Selector&#xff09;或 find() 方法来获取子元素。 子选择器&#xff08;Child Selector&#xff09;&#xff1a; 使用父元素的选择器和 > 符号来选取该父元素的子元素。 例如&#xff1a;选取 id 为 parent 的元素内所有 cl…...

Python Selenium 之数据驱动测试的实现!

数据驱动模式的测试好处相比普通模式的测试就显而易见了吧&#xff01;使用数据驱动的模式&#xff0c;可以根据业务分解测试数据&#xff0c;只需定义变量&#xff0c;使用外部或者自定义的数据使其参数化&#xff0c;从而避免了使用之前测试脚本中固定的数据。可以将测试脚本…...

【Proteus仿真】【STM32单片机】智能语音家居陪护机器人

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用OLED显示模块、红外传感器、蜂鸣器、DS18B20温度传感器&#xff0c;风扇LED、语音识别模块等。 主要功能&#xff1a; 系统运行后&#xff0c;…...

C#上位机序列10: 批量读写+点对点更新+数据类型处理

一、源码结构 二、运行效果 三、源码解析 PLC批量读写点对点更新数据类型处理 优点&#xff1a;根据数据类型&#xff0c;判定监听的地址范围&#xff08;40120_int 监听两个word&#xff1a;40120 40121&#xff1b;40130_long 监听四个word&#xff1a;40130 40131 40132 4…...

MySQL 概述 数据库表操作 数据增删改

目录 MySQL概述前言安装与配置MySQL登录与卸载 数据模型概述SQL简介SQL通用语法简介SQL分类 数据库设计(数据库操作)-DDL数据库操作查询数据库 show databases、select database()创建数据库 create database使用数据库 use删除数据库 drop database 图形化工具连接数据库操作数…...

存储器概述

一、存储系统基本概念...

Fabric.js 使用自定义字体

本文简介 点赞 关注 收藏 学会了 如果你使用 Fabric.js 做编辑类的产品&#xff0c;有可能需要给用户配置字体。 这次就讲讲在 Fabric.js 中创建文本时怎么使用自定义字体、在项目运行时怎么修改字体、以及推荐一个精简字体库的工具。 学习本文前&#xff0c;你必须有一点…...

OpenClaw飞书机器人进阶:集成Kimi-VL-A3B-Thinking多模态对话能力

OpenClaw飞书机器人进阶&#xff1a;集成Kimi-VL-A3B-Thinking多模态对话能力 1. 为什么需要多模态飞书机器人 去年我们团队开始使用飞书作为主要协作工具&#xff0c;但很快发现一个痛点&#xff1a;当讨论涉及图片、图表或复杂文档时&#xff0c;传统的文本机器人显得力不从…...

计算机毕业设计:Python地铁运营可视化平台 Django框架 数据分析 可视化 大数据 机器学习 深度学习(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝50W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…...

拆解Clonezilla镜像:除了partclone,你还需要知道的底层原理与工具链

拆解Clonezilla镜像&#xff1a;从分卷压缩到文件系统的技术全景解析 当我们需要从Clonezilla备份中提取单个文件时&#xff0c;传统方法往往要求完整恢复整个镜像——这种"全有或全无"的方式在存储资源有限的情况下显得尤为笨重。本文将带您深入Clonezilla镜像的底层…...

别再只仿真了!用Multisim/Simulink仿真直流稳压电源(BUCK电路)后,这些关键参数和实物搭建要点你注意了吗?

从仿真到实战&#xff1a;BUCK电路直流稳压电源的工程化实现关键 在电力电子领域&#xff0c;仿真软件如Multisim和Simulink已经成为工程师的标配工具&#xff0c;它们能快速验证电路设计的理论可行性。但当我们真正将设计转化为实物时&#xff0c;往往会遇到仿真中未曾预料的各…...

水下图像增强,水下增强,失真矫正,矫正复原含讲解复现,含代码注释,程序一看就懂。

水下图像增强&#xff0c;水下增强&#xff0c;失真矫正&#xff0c;矫正复原 含讲解复现&#xff0c;含代码注释&#xff0c;程序一看就懂。...

华为MateBook X Pro 2020款在Ubuntu系统中直接使用原生的杜比全景声效果

华为MateBook X Pro 2020款在Ubuntu系统中无法直接使用原生的杜比全景声效果&#xff0c;但可以通过软件模拟获得接近的音频体验。 硬件基础&#xff1a;杜比全景声系统 MateBook X Pro 2020款配备了华为与杜比联合设计的高低音分频四扬声器系统&#xff08;双高音喇叭双下沉式…...

避坑指南:用ArcGIS批量裁剪TIFF时,如何确保输出范围和命名不混乱?

ArcGIS批量裁剪TIFF实战&#xff1a;精准控制输出范围与命名的进阶技巧 当你面对数百个TIFF文件需要批量裁剪时&#xff0c;ArcGIS的ModelBuilder本应是效率神器&#xff0c;但实际使用中却常常遇到输出范围错乱、命名重复甚至文件丢失的窘境。我曾在一个遥感数据处理项目中&am…...

决策树:从入门到精通,一个算法搞定分类与回归

还在为选择什么算法发愁&#xff1f;决策树既能分类又能回归&#xff0c;解释性还超强&#xff0c;今天带你彻底搞懂它一、引言如果你正在学习机器学习&#xff0c;那么决策树绝对是你绕不开的一道坎。为什么&#xff1f;因为它太实用了——银行用它来判断是否给用户批贷款&…...

如何将B站碎片化缓存视频合并为完整MP4?这个Android工具给你答案

如何将B站碎片化缓存视频合并为完整MP4&#xff1f;这个Android工具给你答案 【免费下载链接】BilibiliCacheVideoMerge 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCacheVideoMerge 想象一下这样的场景&#xff1a;你在地铁上打开手机&#xff0c;准备观看…...

快速验证openclaw安装:用快马一键生成环境配置与测试脚本

最近在尝试用openclaw这个开源机器人抓取工具时&#xff0c;发现环境配置和基础功能验证的过程挺费时间的。作为一个经常需要快速验证工具可行性的开发者&#xff0c;我摸索出了一个更高效的方法——用InsCode(快马)平台来一键生成配置脚本和测试原型。下面分享下具体实践过程&…...