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

LeetCode 3 - 无重复字符的最长子串 - C++含代码 无重复字符的最长子串 - C++含代码 题目(LeetCode 3) 给定一个字符串,请找出其中不含有重复字符的 最长子串 的长度。 示例1 输入: “abcabcbb” 输出: 3 示例2 输入: “bbbbb” 输出: 1 示例3 输入: “pwwkew” 输出: 3 思路 由于题目要求我们查找不含有重复字符的子串中,长度最长的一个。一种直观的想法是,对字符串中所有可能的子串,都检查一遍其中是否含有重复字符,并维护其中符合要求子串的最大长度。这种算法的时间复杂度是O(n3)O(n^3)O(n3 阅读详情

题目:

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

示例 1:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 解题思路:

本题为简易版动态规划。遍历字符串,依次存入到数组中,如果字符有重复则计算出重复位置,用splice去重重复字符及前面的字符。用状态转移公式计算出该数组最长长度。

代码:

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    var max=0;
    var t=[];
    var sign=0;
    var last=0;
    for( var i=0;i<s.length;i++){
        if(t.indexOf(s[i])==-1){
            t.push(s[i]);
            sign++;
        }
        else{     
            var v=t.indexOf(s[i]);
            t.splice(0,v+1)
            t.push(s[i])
            sign=sign-v
            
        }
        max=Math.max(sign,max);
    }
    return max;
};

 

LeetCode 3. 无重复字符的最长子串 以上解法全面涵盖了 LeetCode 3 的不同解法(滑动窗口最优),列举了数组/哈希优化的技巧,以及变体问题的常见解法和模板。掌握这些方法,遇到类似问题时可以轻松快速解决! 阅读详情

相关推荐

【中等】力扣算法题解析LeetCode3:无重复字符的最长子串

题目要求找到字符串中最长无重复字符子串的长度。采用滑动窗口(双指针)优化解法,结合哈希数组记录字符最后出现位置。核心步骤: 初始化窗口指针 start 和哈希数组; 遍历字符串,若字符重复则移动 start 至重复位置的下一位; 实时更新最大窗口长度。 复杂度:时间 O(n),空间 O(1)(固定字符集)。Java代码通过一次遍历实现,高效处理边界情况(如空串或全唯一字符)。

ylumwd的博客 559

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

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

忘尘丶莫负的博客 371

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

目录题目1.链接2.题目描述3.解题思路4.题解 题目 1.链接 传送门–>3. 无重复字符的最长子串. 2.题目描述 3.解题思路 思路和算法 我们先用一个例子考虑如何在较优的时间复杂度内通过本题。 我们不妨以示例一中的字符串 abcabcbb 为例,找出从每一个字符开始的,不包含重复字符的最长子串,那么其中最长的那个字符串即为答案。对于示例一中的字符串,我们列举出这些结果,其中括号中表示选中的字符以及最长的字符串: 以 (a)bcabcbb 开始的最长字符串为 (abc)ab

qq_59708493的博客 847

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

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

LifeGoesOn 992

python【力扣LeetCode算法题库】3- 无重复字符的最长子串

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

NJU phd 在读。 825

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

这是刚刚学到的算法——滑动窗口法Sliding Window, 题目如下 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入...

ayang818 's blog 721

力扣LeetCode第3题无重复字符的最长子串

力扣LeetCode第3题无重复字符的最长子串

weixin_44061444的博客 444

UniApp实现多端支付功能完整实现指南

支付业务流程多端支付实现安全性保障异常处理最佳实践支付基础知识多端支付实现统一支付封装安全性处理异常处理最佳实践根据具体业务场景选择合适的支付方式注重安全性和用户体验做好异常处理和日志记录持续优化和改进支付流程关注我,持续分享前端项目开发经验!

weixin_63454527的博客 2128

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

Leetcode 3. 无重复字符的最长子串1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/   核心思路为: 处理s[i] 节点时,其需要比较的最大长度为dp[i-1],这样可以节省时间。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C+

珍惜 8875

WinDbg调试工具安装全攻略:从下载到配置的保姆级教程(Windows 10/11适用)

本文提供了一份详细的WinDbg调试工具安装与配置指南,适用于Windows 10/11用户。文章对比了WinDbg Preview独立版与SDK内置经典版的区别,并手把手指导从Microsoft Store或Windows SDK完成安装。核心部分重点讲解了如何配置符号文件路径与源代码路径,这是让WinDbg发挥强大调试功能的关键步骤,并针对常见安装问题提供了实用的排错方法。

hp777的博客 386

小米手机安装Burp证书失败原因与DER格式改造指南

CA证书是HTTPS抓包和移动安全测试的基础组件,其本质是遵循X.509标准的数字凭证,依赖ASN.1/DER编码格式与完整证书链实现可信验证。Android系统默认支持PEM和DER两种编码,但MIUI自14版本起强化安全策略,仅识别DER二进制格式,并强制校验Subject Alternative Name(SAN)、Basic Constraints及证书链完整性。这种企业级加固逻辑导致Burp Suite导出的PEM格式.cer文件在小米设备上‘安装成功但无效’。本文聚焦证书格式转换、SAN字段注入

weixin_33646989的博客 625

leetcode3. 无重复字符的最长子串,哈希表

leetcode3.无重复字符的最长子串,哈希表

热爱C++和golang的学生 1130

STM32与小米CyberGear微电机的CAN通信协议深度解析

本文深度解析STM32与小米CyberGear微电机的CAN通信协议,涵盖硬件连接、CAN总线配置、通信协议解析及多电机协同控制。重点介绍了基于STM32的电机控制实践,包括运动模式、速度与位置模式设置,以及数据反馈与故障诊断,为机器人及自动化设备开发提供实用指南。

www00的博客 361

【力扣LeetCode】3 无重复字符的最长子串

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

Jiewang的博客 218

星座SAR动目标检测(GMTI)

参考代码 星座SAR动目标检测 www.youwenfan.com/contentcsg/52399.html。

feifeigo123的博客 549

Microsoft Bitlocker企业级管理部署方案

BitLocker是Windows 10以及更高版本中内置的磁盘加密工具,是一种可靠的数据保护机制,可以保护计算机上的敏感数据不被未经授权的人访问。BitLocker的工作原理是将整个系统卷或其他数据卷加密的同时,向某个可信软件或硬件模块请求密钥解密数据。BitLocker最大的好处在于其内置于Windows系统,所以用户无需安装其他软件或购买额外的许可证或硬件设备。本文将介绍Microsoft BitLocker企业级管理部署方案,包括:BitLocker部署前的准备工作。

xueyunshengling的博客 2075

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

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

qq_44972915的博客 227

基于Simulink的无线充电系统LCC补偿网络建模与控制

本文详细介绍了基于Simulink的无线充电系统LCC补偿网络建模与控制方法。首先分析了无线充电系统面临的核心挑战,提出LCC补偿网络解决方案,阐述了其恒流输出和输入阻抗解耦原理。通过Simulink分步演示了系统建模过程,包括松耦合变压器、LCC+LC补偿网络、功率变换级搭建以及频率跟踪控制实现。仿真结果表明,LCC补偿系统在气隙变化和负载跳变下能保持输出电压稳定(波动±3%),效率达89%。文章还总结了工程实现要点,并探讨了动态充电、多负载系统等扩展应用。该教程为开发高效智能的无线充电系统提供了实用指导

amy_mhd的博客 63

『力扣和笔试算法』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

Codex、Claude Code、Opus、Trae、Cursor:一文讲懂 2026 AI 编程工具格局

2026年AI编程工具将形成三层体系:模型层(Opus/Codex)负责思考,执行层(Claude Code/Codex Agent)负责自动开发任务,工具层(Cursor/Trae)提供AI集成的开发环境。关键区别在于Agent路线强调AI主导自动化开发,而IDE路线保持人类主导。未来竞争力取决于能否将AI整合为生产力系统,掌握模型推理、Agent任务编排和AI IDE协同三大能力。核心转变是从"写代码"升级为"指挥AI写代码",高级玩家通过组合不同层级工具构建自动

m0_51738372的博客 2692

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

无重复字符的最长子串(力扣3)

题目描述 题目链接:力扣https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 解法 对于平时不刷题的朋友们来说,此题属于如果之前没见过,凭借面试中短短十几二十分钟想真的自己做出来,基本不可能的那种题目。 对于这种题目,我只有一个办法,搞懂思路,反复编码,直到形成肌肉记忆。 不要太高估自己,就算记得思路,面试的时候你...

shezili的博客 1124

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode(力扣)3. 无重复字符的最长子串。C语言解法

整数反转 1.题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串

quanyy052014的博客 1237

jre9下载 jdk9

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

力扣leetcode题库练习(C++)—3.无重复字符的最长子串

力扣leetcode题库练习(C++)—3.无重复字符的最长子串题目描述示例分析代码及注释如下结果如下注 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”...

weixin_45682431的博客 606

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

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。 来源:力扣(Le

weixin_44106287的博客 172

LeetCode3.无重复字符的最长子串

LeetCode3.无重复字符的最长子串 难度:中等 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 双指针 思路; 第一种情况,s只有一个元素或者空子串; 设置双指针left、right,一个指向最左端,一个指向下一个元素; right向右移动cnt记录不重复字串长度; right向右移动,直到right指向的元素在s[left:right]中存在,找到改元素在窗口中的位置,并将left指向该元素的下一个元素; 然后比较cnt 与 right - left的大小; 如果下一个元

suwuzs的博客 300

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

3.无重复字符的最长子串3.无重复字符的最长子串题解代码 3.无重复字符的最长子串 3.无重复字符的最长子串 题解 简单题,不断维护窗口即可 代码 package main func lengthOfLongestSubstring(s string) int { wind := make(map[byte]int) result := 0 left, right := 0, 0 for i := 0; i < len(s); i++ { wind[s[i]]++ right++

清风 499
上一篇: leetcode 面试题 16.11. 跳水板
下一篇: leetcode 1137. 第 N 个泰波那契数
yuanyuan_HTML
博客等级 码龄10年 4粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值