leetcode 3: 无重复的字符的最长子串

LeetCode3:无重复字符的最长子串(数组) 无重复字符的最长子串 1、给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 2、 /** * 无重复字符的最长子串 * @param s * @return */ public int lengthOfLongestSubstring(String s) { int [] freq= new int[256]; for(int i =0;i<freq.length;i++){ f 阅读详情

题目描述:
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

提示:
0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成

思路: 滑动窗口

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        tp = deque()
        length = 0
        for i in s:
            while i in tp:
                tp.popleft()
            tp.append(i)
            length = max(length, len(tp))
        return length
【中等】力扣算法题解析LeetCode3:无重复字符的最长子串 题目要求找到字符串中最长无重复字符子串的长度。采用滑动窗口(双指针)优化解法,结合哈希数组记录字符最后出现位置。核心步骤: 初始化窗口指针 start 和哈希数组; 遍历字符串,若字符重复则移动 start 至重复位置的下一位; 实时更新最大窗口长度。 复杂度:时间 O(n),空间 O(1)(固定字符集)。Java代码通过一次遍历实现,高效处理边界情况(如空串或全唯一字符)。 阅读详情

相关推荐

【忍者算法】从一指禅到无重复字符:最长子串问题的优雅解法|LeetCode 3 无重复字符的最长子串

本文核心:滑动窗口!

忍者算法的博客 1208

力扣(LeetCode):#3-无重复字符的最长子串

文章目录力扣(LeetCode):#3-无重复字符的最长子串题目描述:题解:方法一:滑动窗口 力扣(LeetCode):#3-无重复字符的最长子串 题目描述: 题解: 方法一:滑动窗口 C++ class Solution { public: int lengthOfLongestSubstring(string s) { // 哈希集合,记录每个字符是否出现过 unordered_set<char> occ; int n = s.s

忘尘丶莫负的博客 371

Ubuntu升级遇到grub-efi-amd64-signed安装失败?3步搞定这个烦人错误

本文深度解析Ubuntu系统升级时grub-efi-amd64-signed安装失败并提示“cannot find EFI directory”错误的根本原因。该错误通常由EFI系统分区挂载异常、BIOS/UEFI引导模式不匹配或dpkg包状态死锁导致。文章提供了三步精准修复流程:首先检查并修复ESP分区挂载,其次处理dpkg依赖问题,最后针对传统BIOS系统提供适配方案,帮助用户安全彻底地解决这一常见升级难题。

r7s8t的博客 398

『力扣和笔试算法』LeetCode:3.无重复字符的最长子串!

LeetCode:3.无重复字符的最长子串! 文章目录1. 题目描述2. 算法实现2.1. 解题思路2.2. 实现代码3. 补充之c++字符串对象参考文章 1. 题目描述 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例3: 输入

AI新视界 762

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

基于云盾构建等保三级Web安全体系:从合规要求到实战落地

网络安全等级保护(等保)是保障信息系统安全的重要制度,其核心原理是通过分级防护、动态调整的策略,构建纵深防御体系。在技术层面,等保要求覆盖物理环境、通信网络、区域边界、计算环境和安全管理中心等多个层面,旨在通过技术和管理相结合的方式,有效应对网络攻击和数据泄露风险。对于Web应用而言,满足等保三级要求具有极高的技术价值,它不仅是合规的刚性需求,更是提升业务系统整体安全水位、建立用户信任、保障业务连续性的关键工程实践。在云计算时代,利用云原生安全服务(如Web应用防火墙WAF、云安全中心、态势感知等)可以高效

weixin_29324877的博客 308

【leetcode力扣】PHP实现:3. 无重复字符的最长子串

题目 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是"abc",所以其长度为 3。 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是"wke",所以其长度为...

allen的博客 959

【QMIX】一种基于Value-Based多智能体算法

文章目录1. QMIX 解决了什么问题(Motivation)2. QMIX 怎样解决团队收益最大化问题(Method)2.1 算法大框架 —— 基于 AC 框架的 CTDE(Centralized Training Distributed Execution) 模式 QMIX 是一种基于 Value-Based 的多智能体强化学习算法(MARL),其基本思想来源于 Actor-Critic 与 DQN 的结合。使用中心式学习(Centralized Learning)分布式执行(Distributed

qq_38638132的博客 9860

力扣(LeetCode)100题:3.无重复字符的最长子串

本文介绍了一种滑动窗口算法求解"无重复字符的最长子串"问题。该算法通过维护左右指针和哈希集合,动态调整窗口范围:左指针每次右移一位并移除左侧字符,右指针尽可能右移直到遇到重复字符。时间复杂度为O(n),空间复杂度取决字符集大小。算法高效解决了子串查找问题,是类似问题的标准模板。

sweet_ran的博客 530

强化学习入门8—深入理解DDPG

本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。

小菜羊的博客 4314

知识图谱中的 Ontology(本体论)

1980年,本体论(Ontology)哲学概念“本体”被引入到人工智能领域用来刻画知识。本体概念模型、明确、形式化、共享。本体是实体存在形式的描述,往往表示为一组概念定义和概念之间的层级关系,本体框架形式树状结构,通常被用来为知识图谱定义schema。如人、公司、车等都可以在具体场景下称为本体。Ontology是(特定领域)信息组织的一种形式,是领域知识规范的抽象和描述,是表达、共享、重用知识的方法。Ontology。

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 2030

【leetcode】力扣刷题(3):无重复字符的最长子串(go语言)

一、问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 ...

郭老二 643

基于STM32的设计智慧超市管理系统(带收银系统+物联网环境监测)_167

本系统主要由超市环境监测部分和商品管理部分组成。环境监测部分主控芯片采用STM32F103C8T6,主要包括温湿度传感器、烟雾传感器和空调制热开关、空调制冷开关,采集的数据通过ESP8266模块+MQTT协议上传至OneNet云平台,在OneNet云平台设计手机和电脑版本可视化页面,能够在页面上查看超市的环境信息,还能在页面上手动打开空调制热开关和空调制冷开关。商品管理部分主要由RC522-RFID读卡器、上位机组成,实现商品选购、结算、顾客的VIP会员卡注册管理等功能。

6069

力扣in前端——无重复字符的最长子串:LeetCode3

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 其实看到这道题第一时间就是想到KMP算法,然鹅并没关系 题解: 设想出一个“滑动窗口”的数组:sliderArray 滑动窗口数组可以做到从头滑动数组并依次扩充数组 直到遇到新的数组元素和原数组中的数重复 然后将原数组中重复元素前的全部元素删除,再扩充数组 每次滑动时都记录最大值 var lengthOfLongest

curacaolb的博客 319

解析 RABAX during SAPGUI Logon 错误及其解决方案

登录用户关联了初始启动程序,该程序由于未处理的异常导致运行时错误。在 ST22 查看错误的程序名和错误行。修复初始程序代码中的逻辑问题。重新部署修复后的代码。示例代码:防止未处理的异常TRY." 模拟逻辑处理ENDTRY.此代码通过 TRY-CATCH 块捕获潜在错误,避免程序崩溃。是 SAP 系统中常见的运行时错误,其根源可能涉及多个方面,包括用户配置、系统状态、数据库连接和自定义开发等。通过结合 ST22、SM21 等诊断工具,以及完善的代码实践和系统监控,可以有效预防和解决此类问题。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1781

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

力扣:3. 无重复字符的最长子串 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释...

qq_44972915的博客 227

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

leetcode力扣第3题:无重复字符的最长子串(中等)

leetcode力扣第3题:无重复字符的最长子串(中等)

weixin_44458771的博客 264

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

算法-无重复字符的最长子串(力扣-3)难度:中等

算法-无重复字符的最长子串题目:力扣-3:无重复字符的最长子串 ,难度:中等描述:示例1:示例 2:示例 3:示例 4:提示:编码实现:方法1:暴力方法:双循环分析:该算法为暴力无脑解法,其时间复杂度为O(n^3),空间复杂度为O(m)优化算法:滑动窗口法编码实现(滑动窗口):分析:时间复杂度为 O(n),空间复杂度为 O(|E|) 其中 E 代表可能出现的无重复的字符集的个数,默认为所有的ASCII 码在 [0,128)内可能出现的字符。 题目:力扣-3:无重复字符的最长子串 ,难度:中等 描述: 给定一

java-xiang 643

力扣算法题(C++):3、无重复字符的最长子串

/ 检查当前字符是否已在子串中出现。// 至少为1,因为单个字符总是无重复的。// 找到重复字符,从重复字符的下一个位置开始新子串。// 2. 关键:如果刚加入的字符使窗口出现重复(计数>1)// 移出字符的计数减1。// 窗口长度 = right - left。// 该字符计数加1。// 3. 此时窗口内无重复字符,更新最大长度。// 滑动窗口的左右边界 [left, right)// 1. 将右指针指向的字符加入窗口。// 哈希表,记录窗口中每个字符出现的次数。// 添加当前字符到子串。

wxm631的博客 551

(LeetCode)第3题:无重复字符的最长子串

题目描述: 3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 class Solution: def lengthOfLongestSubstring(self, s: str) -> int: temp = '' length = 0 for i in s: if i not in temp: temp += i ..

weixin_42038527的博客 159

【leetcode】第3题:无重复字符的最长子串

原文链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 说明:部分文字解析来自于原文。 目 录: 一、暴力解法【时间复杂度O(n^3)】 二、滑动窗口【时间复杂度为O(n)】 三、优化的滑动窗口 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例...

Java学习 813

LeetCode 第 3 号问题:无重复字符的最长子串

本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一。 个人网站:www.cxyxiaowu.com 题目来源于 LeetCode 上第 3 号问题:无重复字符的最长子串。题目难度为 Medium,目前通过率为 29.0% 。 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重...

weixin_33769207的博客 149

【力扣】题目3:无重复字符的最长子串

题目: 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 ...

Ambition_HAO的博客 233

LeetCode:3. 无重复字符的最长子串

本文介绍了使用滑动窗口(双指针+哈希)解决LeetCode第3题"无重复字符的最长子串"的方法。重点分析了在处理字符串"abba"时可能出现的bug:当遇到重复字符时,若直接将左指针跳至上一次出现位置的下一位,可能导致左指针回退,错误包含已丢弃字符。正确做法是通过left = Math.max(left, map.get(s.charAt(right)) + 1)确保左指针只能右移,不能回退。该方法通过哈希表存储字符索引,双指针维护滑动窗口,时间复杂度为O(n),空间

2303_80876582的博客 368

leetcode 3 :无重复字符的最长子串

leetcode 3 :无重复字符的最长子串1. 题目2. 示例:3. 自己的解决方法4. 标准答案 1. 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 2. 示例: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 3. 自己的解决方法 int lengthOfLongestSubstring(char * s){ } 4. 标准答案 int lengthOfLongestSubstring(char * s) {

哈尼的博客 231
上一篇: 需要背下来的编程题目:
下一篇: 分糖果问题进阶:NC CD78
coding_diamond
博客等级 码龄8年 8粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值