前言

开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术。

目录

文章目录

  • 前言
  • 目录
  • 正文
  • 问题3
  • 举例
  • 分析
    • 什么是滑动窗口?
    • 如何移动?
  • 代码

正文

问题3

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

举例

输入:“abcabcbb”
输出:因为无重复字符的最长子串是 “abc”,所以其长度为 3。

分析

问题的一个核心要点是子串而不是子序列,子序列可以直接用set求解,子串则要求元素是连续的。
这道题主要用到思路是:滑动窗口

什么是滑动窗口?

其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列!

如何移动?

我们只要把队列的左边的元素移出就行了,直到满足题目要求!
一直维持这样的队列,找出队列出现最长的长度时候,求出解!
时间复杂度:O(n)
空间复杂度:

代码

实现过程中利用了,集合的特性,自动消除重复元素。

def lengthOfLongestSubstring(self, s: str):if not s:return 0left_len = 0lookup = set()n = len(s)max_len = 0cur_len = 0for i in range(n):cur_len += 1while s[i] in lookup:lookup.remove(s[left_len])left_len += 1cur_len -= 1if cur_len > max_len:max_len = cur_lenlookup.add(s[i])return max_len

leetcode刷题实录:3相关推荐

  1. leetcode刷题实录:4

    前言 开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术. 目录 文章目录 前言 目录 正文 问题3:寻找两个有序数组的中位数 举例 分析 正文 继续刷题 问题3:寻找两个有序 ...

  2. leetcode刷题实录:2

    前言 开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术. 目录 文章目录 前言 目录 正文 问题2 举例 分析 代码 正文 问题2 给出两个 非空 的链表用来表示两个非负的整 ...

  3. leetcode刷题实录:1

    前言 开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术. 目录 文章目录 前言 目录 正文 问题1 示例: 解答 正文 问题1 给定一个整数数组 nums 和一个目标值 ta ...

  4. LeetCode刷题Python实录

    使用Python的LeetCode刷题 前言 题目 1408. 数组中的字符串匹配 508. 出现次数最多的子树元素和 1089. 复写零 剑指 Offer 14- I. 剪绳子 1175. 质数排列 ...

  5. LeetCode刷题C++实录

    LeetCode刷题C++实录 1. 两数之和 121. 买卖股票的最佳时机 382. 链表随机节点 622. 设计循环队列 623. 在二叉树中增加一行 640. 求解方程 761. 特殊的二进制序 ...

  6. 华为工程师总结的LeetCode刷题笔记提供下载,太优秀了

    前言: 最近又有不少老铁在后台留言说,想进大厂,但是算法不好.最近我整理了一份刷题实录,这份刷题实录,也让我进了心仪的大厂.现在开放分享给大家.希望对大家有所帮助. 任何的算法题,如同写作文一样,都有 ...

  7. LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)

    LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) 目录 LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) ...

  8. LeetCode刷题记录14——257. Binary Tree Paths(easy)

    LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...

  9. LeetCode刷题记录13——705. Design HashSet(easy)

    LeetCode刷题记录13--705. Design HashSet(easy) 目录 LeetCode刷题记录13--705. Design HashSet(easy) 前言 题目 语言 思路 源 ...

最新文章

  1. Android实战简易教程-第三十四枪(基于ViewPager和FragmentPagerAdapter实现滑动通用Tab)...
  2. 别找了,Thonny 才是 Python 小白的最理想的 IDE
  3. tomcat 禁用access.log
  4. 搜索引擎提交注意事项
  5. redirect路由配置 vue_Web前端:Vue路由进阶配置
  6. 在MSF中怎么区分易混淆的工作项类型:Bug、风险和问题(我个人的理解)
  7. linux 重定向 不换行,Ada:重定向到stdout时省略换行符(测试Put)
  8. android webview video标签,Android WebView支持html5 video标签
  9. LSI加入多核联盟参与编程与应用标准制定
  10. python获取当前服务器路径_利用Python实现对Web服务器的目录探测
  11. 集中化Linux日志管理系统
  12. 微信推广营销--如何提高微信订阅号的图文转化率?
  13. 了解下常用分析JVM参数以及优化工具
  14. b365老掉线 h3c路由器_H3C路由器PPP连接的常见故障及解决方法
  15. 服务器CPU概念总结
  16. 时间类计算:双代号网络图、单代号网络图、时标网络图
  17. 【基础知识】~ 锁存器/触发器、寄存器
  18. 上海尤劲恩AI视觉检测为工业制造赋能,帮助企业实现智造升级
  19. VS2013/2015 各版本 产品密钥
  20. 革命展馆沙盘拍照打卡学习活动制作方案,border-color 属性用于设置四个边框的颜色。

热门文章

  1. 学校管理系统逻辑关系
  2. mattermost
  3. 学术写作强力推荐语法检查神器:marking mate
  4. 关闭微信朋友圈的第二天的感悟
  5. Docker中安装DB2的详细教程和DBVisualize的安装教程
  6. 处理Xcode8输出无用的Log信息
  7. RHEL7.0系统相关配置
  8. ACL在路由器上设置例子
  9. HDOJ 2049 不容易系列之(4)——考新郎
  10. hdu 3962(AC自动机+矩阵优化dp)