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

LeetCode[中等] 3. 无重复字符的最长子串

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

思路:滑动窗口,设置左右指针left与right,maxLength存储长度

利用HashSet性质,存储滑动窗口中的字符

如果没有重复的,那么right继续向右滑动,并将该字符添加进HashSet中;如果重复了,left向右滑动,并不断将字符移出数组。

完成一次判断之后,更新最长字串长度

public class Solution {public int LengthOfLongestSubstring(string s) {HashSet<char> set = new HashSet<char>();int left = 0, right = 0, maxLength = 0;int length = s.Length;while(right < length){if(!set.Contains(s[right])){set.Add(s[right]);right++;}else{set.Remove(s[left]);left++;}maxLength = Math.Max(maxLength, right - left);}return maxLength;}
}

复杂度分析

  • 时间复杂度:O(n),其中 n 是字符串 s 的长度。滑动窗口的左右端点最多各遍历字符串 s 一次。

  • 空间复杂度:O(∣Σ∣),其中 Σ 是字符集。空间复杂度主要取决于哈希集合,哈希集合中每个字符最多出现一次。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 简洁明了!中缀表达式转为后缀表达式规则及代码
  • 第L6周:机器学习-随机森林(RF)
  • 计算机网络 ---- 计算机网络的体系结构【计算机网络的分层结构】
  • Python和MATLAB及C++信噪比导图(算法模型)
  • python绘制3d建筑
  • 数据清洗-缺失值填充-K-NN算法(K-Nearest Neighbors, K-NN算法)
  • 排队免单模式小程序开发
  • ElementUI 布局——行与列的灵活运用
  • 初学Linux(学习笔记)
  • 【区块链通用服务平台及组件】基于向量数据库与 LLM 的智能合约 Copilot
  • 【STM32】外部中断
  • C++ | Leetcode C++题解之第406题根据身高重建队列
  • 栈与队列(c语言实现)
  • linux命令学习-sed命令
  • Unity教程(十五)敌人战斗状态的实现
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Docker入门(二) - Dockerfile
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • iOS 系统授权开发
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Linux中的硬链接与软链接
  • mongo索引构建
  • Python_OOP
  • Yeoman_Bower_Grunt
  • 给初学者:JavaScript 中数组操作注意点
  • 后端_MYSQL
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端工程化(Gulp、Webpack)-webpack
  • 学习JavaScript数据结构与算法 — 树
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 智能网联汽车信息安全
  • FaaS 的简单实践
  • 我们雇佣了一只大猴子...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #if #elif #endif
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C#)获取字符编码的类
  • (C语言)fgets与fputs函数详解
  • (javascript)再说document.body.scrollTop的使用问题
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (二)斐波那契Fabonacci函数
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (九)One-Wire总线-DS18B20
  • (十三)MipMap
  • (四)JPA - JQPL 实现增删改查
  • .ai域名是什么后缀?
  • .NET Framework杂记