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.《滑动窗口篇》---②长度最小的子数组(中等)
有了上一篇的基础。这道题我们就可以轻易分析可以使用滑动窗口来解决了 方法一:滑动窗口 这里注意 ret 在while循环外部更新 在 while 外部更新 ret,确保窗口在满足条件后再计算长度,避免错误计入正在调整中的窗口长度。 class Solution {pub…...

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

STL-stack栈:P1981 [NOIP2013 普及组] 表达式求值
这个题用的STL-栈来做 题目来源:洛谷 相关知识 [NOIP2013 普及组] 表达式求值 题目背景 NOIP2013 普及组 T2 题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 输入格式 一行,为需要你计算的表达式ÿ…...
Java使用stream进行分组汇总失效问题
背景 在当前项目的开发任务中需要定制财务报表导出功能,格式比较特殊使用了VM。在汇总数据的过程中使用了stream.collect 进行分组汇总。在测试的过程中发现分组失败,最终原因是对象的对比方式问题,collect是根据对象对比的所以需要重写equa…...

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

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

OrangePi 5plus yolov5 部署全过程
准备工作 一、下载用户手册 下载-Orange Pi官网-香橙派(Orange Pi)开发板,开源硬件,开源软件,开源芯片,电脑键盘 里面有详细的镜像烧录教程和桌面使用等 二、镜像下载 准备一张TF卡(32G以上),插入电脑,…...
Rust中::和.的区别
在 Rust 中,:: 和 . 是两种常用的操作符,它们的作用和语法用途不同。以下是详细的对比和解释: 1. ::(双冒号) :: 是 路径操作符,主要用于访问模块、结构体、枚举、函数、常量等的命名空间中的成员。 主要…...

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

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

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

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

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

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

基于YOLOv8深度学习的医学影像阿尔兹海默症检测诊断系统研究与实现(PyQt5界面+数据集+训练代码)
阿尔茨海默症(Alzheimer’s disease)是一种常见的神经退行性疾病,主要表现为记忆丧失、认知能力下降以及行为和人格改变。随着全球老龄化问题的加剧,阿尔茨海默症的发病率也在逐年上升,给患者及其家庭带来了巨大的经济…...

【支持向量机(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文件,添加kapt配置项: 在模块目录下build.gradle.kt中增加 plugins {alias(libs.plugins.android.application)alias(libs.plugins.jetbrains.kotlin.android)// 增加该行alias(libs.plugins.jetbrains.kotl…...
时序数据库TDEngine
TDengine 是一款开源、高性能、云原生的时序数据库(Time Series Database, TSDB), 它专为物联网、车联网、工业互联网、金融、IT 运维等场景优化设计。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度&…...
jd-easyflow中inclusive的用法
在jd-easyflow中,inclusive通常与流程中的条件分支(conditions)配置相关,用于控制多个条件分支的执行逻辑。当conditionType设置为inclusive时,表示多个条件分支中的所有条件都会被评估,而不是像exclusive那…...

sqlmap图形化安装使用(附文件)
1.需要python环境,我这里就不教如何安装python环境了。 2.下载压缩包并且解压 3. 凭自己喜好选择大窗口小窗口 4.进入图形化界面后,1.输入url地址。2.选择要执行的操作。3.构造命令语句 5.点击一把梭,然后就可以发现出结果了 6. 对于喜欢自己…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...