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

10.《滑动窗口篇》---②长度最小的子数组(中等)

有了上一篇的基础。这道题我们就可以轻易分析可以使用滑动窗口来解决了

方法一:滑动窗口

这里注意 ret 在while循环外部更新

while 外部更新 ret确保窗口在满足条件后再计算长度,避免错误计入正在调整中的窗口长度。

class Solution {public int lengthOfLongestSubstring(String s0) {int[] hash = new int[128]; //数组模拟哈希表int n = s0.length();char[] s = s0.toCharArray();int ret = 0;for(int left = 0,right = 0; right < n; right++){hash[s[right]]++; //进入窗口while(hash[s[right]] > 1){hash[s[left++]]--;}ret = Math.max(ret,right-left+1);}return ret;}
}

复杂度分析

时间复杂度:O(n),

空间复杂度:

  • 常见分析: 空间复杂度为 O(1),因为哈希表是固定大小,额外空间使用与输入大小无关。
  • 严格分析: 如果字符数组 chars 被视为额外空间,则空间复杂度为 O(n)

相关文章:

10.《滑动窗口篇》---②长度最小的子数组(中等)

有了上一篇的基础。这道题我们就可以轻易分析可以使用滑动窗口来解决了 方法一&#xff1a;滑动窗口 这里注意 ret 在while循环外部更新 在 while 外部更新 ret&#xff0c;确保窗口在满足条件后再计算长度&#xff0c;避免错误计入正在调整中的窗口长度。 class Solution {pub…...

java的强,软,弱,虚引用介绍以及应用

写在前面 本文看下Java的强&#xff0c;软&#xff0c;弱&#xff0c;虚引用相关内容。 1&#xff1a;各种引用介绍 顶层类是java.lang.ref.Reference,注意是一个抽象类&#xff0c;而不是接口&#xff0c;其中比较重要的引用队列ReferenceQueue就在该类中定义&#xff0c;子…...

STL-stack栈:P1981 [NOIP2013 普及组] 表达式求值

这个题用的STL-栈来做 题目来源&#xff1a;洛谷 相关知识 [NOIP2013 普及组] 表达式求值 题目背景 NOIP2013 普及组 T2 题目描述 给定一个只包含加法和乘法的算术表达式&#xff0c;请你编程计算表达式的值。 输入格式 一行&#xff0c;为需要你计算的表达式&#xff…...

Java使用stream进行分组汇总失效问题

背景 在当前项目的开发任务中需要定制财务报表导出功能&#xff0c;格式比较特殊使用了VM。在汇总数据的过程中使用了stream.collect 进行分组汇总。在测试的过程中发现分组失败&#xff0c;最终原因是对象的对比方式问题&#xff0c;collect是根据对象对比的所以需要重写equa…...

VMWare虚拟机安装华为欧拉系统

记录一下安装步骤&#xff1a; 1.在vmware中创建一个新的虚拟机&#xff0c;步骤和创建centos差不多 2.启动系统 具体的看下图&#xff1a; 启动虚拟机 耐心等待 等待进度条走完重启系统就完成了...

阿里云轻量应用服务器可以用在哪些场景呢

在数字化转型的浪潮中&#xff0c;中小企业面临着如何快速、高效地上云的挑战。阿里云轻量应用服务器&#xff08;SWAS&#xff09;作为一款专为中小企业设计的云服务产品&#xff0c;提供了简单易用、经济实惠的解决方案&#xff0c;助力企业轻松实现云端部署&#xff0c;赋能…...

OrangePi 5plus yolov5 部署全过程

准备工作 一、下载用户手册 下载-Orange Pi官网-香橙派&#xff08;Orange Pi&#xff09;开发板,开源硬件,开源软件,开源芯片,电脑键盘 里面有详细的镜像烧录教程和桌面使用等 二、镜像下载 准备一张TF卡&#xff08;32G以上&#xff09;&#xff0c;插入电脑&#xff0c…...

Rust中::和.的区别

在 Rust 中&#xff0c;:: 和 . 是两种常用的操作符&#xff0c;它们的作用和语法用途不同。以下是详细的对比和解释&#xff1a; 1. ::&#xff08;双冒号&#xff09; :: 是 路径操作符&#xff0c;主要用于访问模块、结构体、枚举、函数、常量等的命名空间中的成员。 主要…...

集群聊天服务器(7)数据模块

目录 Mysql数据库代码封装头文件与源文件 Mysql数据库代码封装 业务层代码不要直接写数据库&#xff0c;因为业务层和数据层的代码逻辑也想完全区分开。万一不想存储mysql&#xff0c;想存redis的话&#xff0c;就要改动大量业务代码。解耦合就是改起来很方便。 首先需要安装m…...

VS Code 更改背景颜色

我们的 VS code 默认是 黑色&#xff0c;这个颜色在有光的情况下&#xff0c;个人感觉反光比较严重。 所以换成白色了。 步骤&#xff1a; 选择 File -> Preferences -> Settings Workbench -> Appearance -> Color Theme -> 选择喜欢的颜色 选择后会变为你选…...

OpenAI 助力数据分析中的模式识别与趋势预测

数据分析师的日常工作中&#xff0c;发现数据中的隐藏模式和预测未来趋势是非常重要的一环。借助 OpenAI 的强大语言模型&#xff08;如 GPT-4&#xff09;&#xff0c;我们可以轻松完成这些任务&#xff0c;无需深厚的编程基础&#xff0c;也能快速上手。 在本文中&#xff0…...

IDM扩展添加到Edge浏览器

IDM扩展添加到Edge浏览器 一般情况下&#xff0c;当安装IDM软件后&#xff0c;该软件将会自动将IDM Integration Module浏览器扩展安装到Edge浏览器上&#xff0c;但在某些情况下&#xff0c;需要我们手动安装&#xff0c;以下为手动安装步骤 手动安装IDM扩展到Edge浏览器 打…...

【SpringBoot】26 实体映射工具(MapStruct)

Gitee 仓库 https://gitee.com/Lin_DH/system 介绍 现状 为了让应用程序的代码更易于维护&#xff0c;通常会将项目进行分层。在《阿里巴巴 Java 开发手册》中&#xff0c;推荐分层如下图所示&#xff1a; 每层都有对应的领域模型&#xff0c;即不同类型的 Bean。 DO&…...

分层架构 IM 系统之架构演进

在电商业务日活几百万的情况下&#xff0c;IM 系统采用分层架构方式&#xff0c;如下图。 分层架构的 IM 系统&#xff0c;整体上包含了【终端层】、【入口层】、【业务逻辑层】、【路由层】、【数据访问层】和【存储层】&#xff0c;我们在上篇文章&#xff08;分层架构 IM 系…...

基于YOLOv8深度学习的医学影像阿尔兹海默症检测诊断系统研究与实现(PyQt5界面+数据集+训练代码)

阿尔茨海默症&#xff08;Alzheimer’s disease&#xff09;是一种常见的神经退行性疾病&#xff0c;主要表现为记忆丧失、认知能力下降以及行为和人格改变。随着全球老龄化问题的加剧&#xff0c;阿尔茨海默症的发病率也在逐年上升&#xff0c;给患者及其家庭带来了巨大的经济…...

【支持向量机(SVM)】:相关概念及API使用

文章目录 1 SVM相关概念1.1 SVM引入1.1.1 SVM思想1.1.2 SVM分类1.1.3 线性可分、线性和非线性的区分 1.2 SVM概念1.3 支持向量概念1.4 软间隔和硬间隔1.5 惩罚系数C1.6 核函数 2 SVM API使用2.1 LinearSVC API 说明2.2 鸢尾花数据集案例2.3 惩罚参数C的影响 1 SVM相关概念 1.1…...

Android kotlin之配置kapt编译器插件

配置项目目录下的gradle/libs.versions.toml文件&#xff0c;添加kapt配置项&#xff1a; 在模块目录下build.gradle.kt中增加 plugins {alias(libs.plugins.android.application)alias(libs.plugins.jetbrains.kotlin.android)// 增加该行alias(libs.plugins.jetbrains.kotl…...

时序数据库TDEngine

TDengine 是一款开源、高性能、云原生的时序数据库&#xff08;Time Series Database, TSDB&#xff09;, 它专为物联网、车联网、工业互联网、金融、IT 运维等场景优化设计。同时它还带有内建的缓存、流式计算、数据订阅等系统功能&#xff0c;能大幅减少系统设计的复杂度&…...

jd-easyflow中inclusive的用法

在jd-easyflow中&#xff0c;inclusive通常与流程中的条件分支&#xff08;conditions&#xff09;配置相关&#xff0c;用于控制多个条件分支的执行逻辑。当conditionType设置为inclusive时&#xff0c;表示多个条件分支中的所有条件都会被评估&#xff0c;而不是像exclusive那…...

sqlmap图形化安装使用(附文件)

1.需要python环境&#xff0c;我这里就不教如何安装python环境了。 2.下载压缩包并且解压 3. 凭自己喜好选择大窗口小窗口 4.进入图形化界面后&#xff0c;1.输入url地址。2.选择要执行的操作。3.构造命令语句 5.点击一把梭&#xff0c;然后就可以发现出结果了 6. 对于喜欢自己…...

从二维到一维:动态规划矩阵问题的优化之道

动态规划中的矩阵问题是非常经典的应用场景&#xff0c;比如最小路径和问题。这类问题很自然地可以想到使用二维 dp 数组来求解。 我们定义&#xff1a; dp[i][j] 表示从矩阵的第 i行第 j列到右下角的最小路径和。 基本解法 求解过程从右下角开始&#xff0c;向左上角遍历&am…...

计算机视觉(CV):让机器看懂世界

引言 计算机视觉&#xff08;Computer Vision, CV&#xff09;是人工智能的重要领域&#xff0c;致力于让机器能够“看懂”世界。CV技术广泛应用于自动驾驶、医疗影像、安防监控和娱乐领域&#xff0c;正在改变我们的生活方式。 本文将从基本概念、技术方法、应用场景和发展方向…...

记录下,用油猴Tampermonkey监听所有请求,绕过seesion

油猴Tampermonkey监听所有请求&#xff0c;绕过seesion 前因后果脚本编写 前因后果 原因是要白嫖一个网站的接口&#xff0c;这个接口的页面入口被隐藏掉了&#xff0c;不能通过页面调用&#xff0c;幸好之前有想过逆向破解通过账号密码模拟登录后拿到token&#xff0c;请求该…...

服务器产品

一 存储产品 3.1 3PAR 3.2 X10000 3.3 SAN Switch 3.4 Nimble 3.5 SimpliVity 3.6 XP 3.7 MSA 3.8 StoreOnce 3.9 StoreEver 3.10 StoreBlade 3.11 StoreEasy&#xff08;WindowsNAS&#xff09; 3.12 JBOD 3.13 CB 二 服务器产品 4.1 红牌服务器 4.1.1 红牌…...

pyhton django web集群基于linux定时任务

基于django management/commands目录下的脚本 from django.core.management import BaseCommand import logging import uuid from pia.utils.cache import reset_redis_expire from pia.utils.reids_key import TASK_KEYlogging logging.getLogger(task)""" …...

探索 Python 字典的奥秘:Future 对象为何能成为字典的键?

本质在于作为字典的key能不能执行hash(key) 问题 import concurrent.futuresdef task(n):return n * n# 创建一个线程池 with concurrent.futures.ThreadPoolExecutor() as executor:# 提交任务并获取 Future 对象future_to_num {executor.submit(task, i): i for i in rang…...

多品牌摄像机视频平台EasyCVR视频融合平台+应急布控球:打造城市安全监控新体系

在当今快速发展的智慧城市和数字化转型浪潮中&#xff0c;视频监控技术已成为提升公共安全、优化城市管理、增强应急响应能力的重要工具。EasyCVR视频监控平台以其强大的多协议接入能力和多样化的视频流格式分发功能&#xff0c;为用户提供了一个全面、灵活、高效的视频监控解决…...

Spark 中 RDD checkpoint 是通过启动两个独立的 Job 完成的。

在 Spark 中&#xff0c;RDD checkpoint 是通过启动两个独立的 Job 完成的。这两个 Job 分别用于生成 checkpoint 数据和更新依赖关系。下面从源码角度深入分析这个机制。 1. 为什么需要两个 Job&#xff1f; 当调用 RDD.checkpoint() 后&#xff1a; 第一个 Job&#xff1a;…...

如何下载TikTok视频没有水印

随着短视频平台的普及&#xff0c;TikTok&#xff08;抖音国际版&#xff09;成为了全球最受欢迎的社交媒体平台之一。它吸引了无数创作者发布自己的短视频内容&#xff0c;内容涵盖了舞蹈、搞笑、挑战、教程、旅行等各个方面。与此用户也常常希望能够下载自己喜欢的TikTok视频…...

天童美语:提升孩子的自信心的方法

每个孩子都渴望展翅高飞&#xff0c;但在成长的旅途中&#xff0c;难免会遇到风雨。不自信&#xff0c;就像一层薄雾&#xff0c;有时悄悄笼罩在孩子心头&#xff0c;阻碍了他们向阳而生的脚步。宁波天童教育认为&#xff0c;身为家长&#xff0c;我们的使命不仅是孩子的庇护伞…...

如何修改asp网站栏目/郑州seo外包v1

文章目录前言一、.关闭防火墙二、.虚拟机网络设置&#xff08;此处仅写出三种连接模式的概念&#xff09;1.桥接模式2.NAT模式3.仅主机模式三、ping 命令三个参数的使用方法四、Linux 系统查看网卡配置1.方法一&#xff1a;ifconfig 命令查看设置网卡2.方法二&#xff1a;通过 …...

深圳大兴汽车集团网站建设/二级域名查询入口

小渣来说动态规划了&#xff1a; 首先说一说斐波拉契数列&#xff08;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5......&#xff09;&#xff0c;如图&#xff1a; 这些就是小渣理解的动态规划&#xff0c;欢迎大佬来补充。 这些是经典的动态规划题&#xff1a; h…...

wordpress修改主题版权/全球十大搜索引擎入口

jacoco统计覆盖率最佳实践jacoco总结Jacoco安装代码覆盖率介绍行覆盖分支覆盖方法覆盖覆盖率的误区代码覆盖率意义覆盖率报告解析启动jacoco agent进行插桩**单元测试offline模式&#xff1a;**mvn命令增加参数在pom文件中添加jacoco插件**功能测试on-the-fly模式**&#xff1a…...

建立企业网站要多少钱/电商怎么推广自己的产品

Python 中的变量不需要声明。每个变量在使用前都必须赋值&#xff0c;变量赋值以后该变量才会被创建。在 Python 中&#xff0c;变量就是变量&#xff0c;它没有类型&#xff0c;我们所说的"类型"是变量所指的内存中对象的类型。等号()用来给变量赋值。等号()运算符左…...

呼和浩特市做网站公司好的/最有效的网络推广方式

http://blog.csdn.net/cutemouse/category/117620.aspx 转载于:https://www.cnblogs.com/hainange/archive/2006/05/02/6153711.html...

网站图片不是本站的对seo有什么不好/上海做网站优化

用:target伪类实现Tab切换效果真的非常简单&#xff01;简单到什么程度呢&#xff1f;它只需要下面这些代码。 style.css&#xff1a; .song-info {position: absolute;background: #fff; }#song-info:target, #song-lyricCN:target, #song-lyricEN:target {z-inde…...