LeetCode讲解篇之3. 无重复字符的最长子串

news2024/12/27 2:03:41

文章目录

  • 题目描述
  • 题解思路
  • 代码实现

题目描述

在这里插入图片描述

题解思路

因为我们需要求无重复字符的最长子串,这个我们首先需要想到使用滑动窗口,窗口内记录无重复的子串的所有字符,移动窗口的右边界时,发现当前字符在窗口内已经出现,则将窗口中和当前元素相同的元素和其前面的元素淘汰,保证窗口内的字符都是不重复的,我们只需要滑动过程中窗口的最大长度即可

代码实现

func lengthOfLongestSubstring(s string) int {
	// 最终结果
    ans := 0
    // 窗口
    win := map[byte]int{}
    // 窗口的左边界下标
	left := -1

	for i := 0; i < len(s); i++ {
		c := s[i]
		// 如果当前字符在窗口中存在,并且下标合法
		if idx, ok := win[c]; ok && idx > left {
			// 设置窗口的左边界,相当于淘汰窗口中和当前元素相同的元素和其前面的元素
			left = idx
		}

		// 设置当前字符的下标
		win[c] = i
		// 刷新结果的最大值
		ans = max(ans, i - left)
	}

    return ans
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2180134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】动态规划—120. 三角形最小路径和(附完整Python/C++代码)

动态规划—120. 三角形最小路径和 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 三角形最小路径和 是动态…

CHI协议中的LPID

总目录&#xff1a; CHI协议简读汇总-CSDN博客https://blog.csdn.net/zhangshangjie1/article/details/131877216 当某个requester包含多个logically separate processing agent时&#xff0c;使用这个LPID&#xff1b; LPID在如下的opcode下&#xff0c;取值需要正确&#…

无人机在抗洪方面的作用!

一、实时监测与灾情评估 无人机能够迅速抵达受灾区域上空&#xff0c;通过搭载的高清摄像头、红外热成像仪等传感器&#xff0c;实时传输灾区图像和视频&#xff0c;为救援指挥中心提供第一手资料。有助于快速了解灾情&#xff0c;从而制定科学合理的救援方案。 二、搜救定位…

SpringMVC源码-AbstractHandlerMethodMapping处理器映射器将@Controller修饰类方法存储到处理器映射器

SpringMVC九大内置组件之HandlerMapping处理器映射器-AbstractHandlerMethodMapping类以及子类RequestMappingHandlerMapping如何将Controller修饰的注解类以及类下被注解RequestMapping修饰的方法存储到处理器映射器中。 从RequestMappingHandlerMapping寻找: AbstractHandle…

②三菱Modbus主站MELSEC转ModbusRTU/ASCII工业MELSEC网关串口服务

三菱Modbus主站MELSEC转ModbusRTU/ASCII工业MELSEC网关串口服务https://item.taobao.com/item.htm?ftt&id834634632647 MELSEC 通信单元 MELSEC 转 RS485 &#xff08;接上一章&#xff09; 动作指示灯 电源指示灯(PWR) 表示 MS-A1-80X1 通讯模块是否处于通电中。…

用ChatGPT工作提效,这些方法太实用了!

被任务和紧迫的截止日期压垮了吗&#xff1f;ChatGPT 是提升工作效率的关键武器。探索这篇指南&#xff0c;快速提升您的工作效率&#xff01; ChatGPT 在现代职场中的角色 随着数字时代的到来&#xff0c;技术进步彻底改变了商业世界&#xff0c;自动化和效率已成为企业保持…

怎样才能设计出全面且详细的测试要点?

今天想跟大家分享一个案例&#xff0c;关于一个测试场景引发的测试要点思考。 废话不多说&#xff0c;上菜&#xff01; 情况介绍 某天&#xff0c;开发同事提交了一个功能优化单&#xff0c;大概情况就是&#xff1a;为了节省内存使用&#xff0c;开启了一个配置&#xff0…

求解线性方程的方法步骤(含例题),附解线性方程计算器

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f4d0; 在数学和工程问题中&#xff0c;线性方程是一类非常基础且常见的问题。无论是解决简单的一元一次方程&#xff0c;还是复杂的多元线性方程组&#xff0c;都有一定的方法和步骤可以遵循。今天&#xff0c;我们…

体育课评分系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;点明册管理&#xff0c;体育教案管理&#xff0c;教学评分管理&#xff0c;学生心率管理&#xff0c;身体素质测评管理&#xff0c;教学比赛成绩管理 微信端账号功能包括&#xf…

Autosar CP系列:设计模式之仲裁模式和信号质量模式

本文讲解关于Autosar的另外两个设计模式&#xff1a;仲裁模式和信号质量模式&#xff0c;上篇花大量篇幅讲解了《传感器执行器模式》。 1.仲裁模式 为了解决多个不同提供者或请求者之间的仲裁问题&#xff0c;引入一个新的组件&#xff0c;这个组件的作用是管理所有来自不同请…

安防监控/智慧安防EasyCVR视频汇聚监控平台无法启动并报错“no space left on service”是什么原因?

视频汇聚/安防监控/智慧安防EasyCVR视频监控平台&#xff0c;作为一款智能视频监控综合管理平台&#xff0c;凭借其强大的视频融合汇聚能力和灵活的视频能力&#xff0c;在各行各业的应用中发挥着越来越重要的作用。平台可以引入AI智能分析能力&#xff0c;能够实现对视频中的特…

Spring Cloud面试题收集

Spring Cloud Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用 spring boot 的开发风格做到一键启动和部署。…

基于SpringBoot - Netty框架的云快充协议(充电桩协议)

云快充协议是一种标准通信协议&#xff0c;主要用于电动车与充电桩之间的数据交换。该协议包含了充电请求、状态查询、支付等多个功能模块。这些功能的实现不仅需要对协议进行深入理解&#xff0c;还需要编写相应的代码进行封装。 软件架构 1、提供云快充底层桩直连协议&#…

“DNA亲和纯化测序:汇智生物的精准分析“

&#x1f331; 汇智生物 | 专注农业&植物基因组分析 &#x1f331; &#x1f393; 教授【优青】团队亲自指导&#xff01;提供专业实验设计、数据分析、SCI论文辅助等全方位服务。精准高效&#xff0c;为农植物科研保驾护航&#xff01; &#x1f52c; 专业实验外包服务&am…

100个超有用的Python知识点!

一、基础语法 1.变量的定义与赋值。 2.不同数据类型&#xff08;整数、浮点数、字符串、布尔值、列表、元组、字典、集合&#xff09;的使用。 3.运算符&#xff08;算术、比较、逻辑、赋值、位运算等&#xff09;。 4.控制流语句&#xff08;if-else、for 循环、while 循环…

IDEA 最新版创建 Sping Boot 项目没有 JDK8 选项的解决方案

问题 今天新建一个 Java 项目写 demo 时&#xff0c;发现 Idea 上只能勾选 Java 17、21、23 三个版本 解决方案 IDEA 页面创建 Spring 项目&#xff0c;其实是访问 spring initializr 去创建项目。我们可以通过阿里云国服去间接创建 Spring 项目。服务器 URL 地址替换为 ht…

如何将list嵌套的list的[]去掉

如果list里里面的元素是数字&#xff0c;‘1’也是可以的&#xff0c;那么我们可以使用np.ravel a [[1,2,3], [5, 2, 8], [7,8,9]]list(np.ravel(a)) #[1, 2, 3, 5, 2, 8, 7, 8, 9]对于不规则List c[[‘云阳站’], [‘双江’, ‘木古’], [‘滨双线’], [‘滨双线’, ‘云田线…

【Echarts地图开发全流程加全套代码】

前言 本篇分享近期做的项目echarts相关地图开发的相关细节和避坑细节&#xff01;&#xff01; 一、地图Json文件 echarts地图采用官网的type类型map进行配置开发 Apache EChartsApache ECharts&#xff0c;一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&…

Excel中查找某个值的位置,用位置取值

有 2022 年 1 月的日销售额统计表如下所示&#xff1a; 找出销售额最大的是哪一天&#xff0c;在 C2 单元格里输入&#xff1a; spl("E(?1).pmax(Sales)",A1:B32)返回结果 12 接着找出销售额最大的那天的前 5 天和后 5 天的销售额&#xff1a; spl("E(?1).…

RAR格式文件解压:适合各平台的RAR解压软件下载推荐

RAR格式是一种广泛使用的压缩格式&#xff0c;因其优秀的压缩率和多样化的功能而受到用户的喜爱。然而&#xff0c;尽管许多操作系统自带基本的压缩解压功能&#xff0c;但要处理RAR格式文件&#xff0c;通常需要借助专门的解压软件。本文将为用户推荐适合Windows、Mac、Linux和…