我是小张同学,立志用最简洁的代码做最高效的表达


以下是我个人做的题解,每个题都尽量囊括了所有解法,并做到了最优解,欢迎大家收藏!留言!

传送门——>Leecode大厂热题100道系列题解


问题描述

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

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

示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

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

示例 4:
输入: s = “”
输出: 0

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


解法

  • hash表判重 + 滑动窗口队列

复杂度分析

  • 时间复杂度:O(N)O(N)O(N),其中NNN是字符串的长度。左指针和右指针分别会遍历整个字符串一次。

  • 空间复杂度:O(∣Σ∣)O(|\Sigma|)O(∣Σ∣),其中Σ\SigmaΣ表示字符集(即字符串中可以出现的字符),∣Σ∣|\Sigma|∣Σ∣表示字符集的大小。在本题中没有明确说明字符集,因此可以默认为所有 ASCII 码在 [0,128)[0, 128)[0,128)内的字符,即∣Σ∣=128|\Sigma| = 128∣Σ∣=128。我们需要用到哈希集合来存储出现过的字符,而字符最多有 ∣Σ∣|\Sigma|∣Σ∣个,因此空间复杂度为 O(∣Σ∣)O(|\Sigma|)O(∣Σ∣)。

class Solution {public:int lengthOfLongestSubstring(string s) {int maxLen = 0;unordered_map<char, int>um;queue<char>q;for(int i = 0; i < s.length(); i++) {q.push(s[i]);um[s[i]]++;if(um[s[i]] == 1) maxLen = max(q.size(), maxLen);if(um[s[i]] > 1) {while(um[s[i]] > 1) {um[q.front()]--;q.pop();}}}return maxLen;}int max(int a, int b) {return a > b ? a : b;}
};

孤独是非常有必要的,一个人在孤独时间所做的事,决定了这个人和其他人根本的不同。

Leecode03. 无重复字符的最长子串——Leecode大厂热题100道系列相关推荐

  1. Leecode05. 最长回文子串——Leecode大厂热题100道系列

    我是小张同学,立志用最简洁的代码做最高效的表达 以下是我个人做的题解,每个题都尽量囊括了所有解法,并做到了最优解,欢迎大家收藏!留言! 传送门-->Leecode大厂热题100道系列题解 问题描 ...

  2. php无重复字符的最长子串,PHP算法之无重复字符的最长子串

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

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

    一.问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 " ...

  4. 刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  5. 【每日一算法】无重复字符的最长子串

    微信改版,加星标不迷路! 每日一算法 - 无重复字符的最长子串 思路答案 首先定义一个指针p指向该字符串的链头,然后通过p指针后的第i个字符是否和p指针后的第j个字符相同来取得最大长度.(也叫做完全遍 ...

  6. 汇编语言求无符号数组中出现的次数最多数_【今日最佳leecode通俗易懂】无重复字符的最长子串...

    相信看了这个标题的同学,对这道题以已经非常不陌生了,就是leecode当中的第三题,之所以要单独的写一写主要对我来说,里面涉及到有一个滑动窗口, 散列表, 字符编码等知识点比较重要,也有几个小技巧,这 ...

  7. 大二菜鸟———无重复字符的最长子串

    这是一枚大二菜鸟的成长反思博客   终于忍不住,在这六月将之的一天开始写起了博客.数据结构计算机算法杂七杂八学了一堆但是都只是浅尝,觉得还是要写博客反刍学习到的知识.   感谢大佬 @Java3y 的 ...

  8. 无重复最长子串python_leetCode 无重复字符的最长子串 python(Longest Substring Without Repeating Characters) python...

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. Default 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &quo ...

  9. 算法-------无重复字符的最长子串(Java版)

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

最新文章

  1. 原 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)
  2. mina android 服务器,MINA框架----------android客户端与服务器端
  3. 【D3.V3.js系列教程】--(十四)有路径的文字
  4. PIL image.fromarray()函数
  5. boost::geometry::strategy::transform::matrix_transformer用法的测试程序
  6. 软件推荐-有道超级计算器
  7. 定时插座动一下就断_使用插座定时器在某些时候自动将您的Amazon Echo静音
  8. kotlin 初始化数组
  9. ONGC的完整形式是什么?
  10. 设置文本区域大小_数据验证基本设置技巧
  11. 【blockly教程】第五章 循环结构
  12. html固定表的属性是什么,css如何固定表头
  13. CCF201503-5 最小花费(100分解题链接)
  14. 【Pytorch】保存神经网络模型
  15. sensenet的编译调试
  16. [趣谈网络协议学习] 17 P2P协议:我下小电影, 99%急死你
  17. PHP生成短链接的方法
  18. java开发资源下载链接
  19. 《软件工程》实验个人报告,南风银行ATM自动柜员机 开发总结报告; 滁州学院课程
  20. mr time android 最新版,MR.TIME MAKER for Android Wear

热门文章

  1. 顶级极客技术挑战赛,你敢来挑战吗?| 大神登峰造极
  2. 这里有一份面筋请查收(五)
  3. OS- -调度(一)
  4. 打破系统边界,云端协同创新——专访华为云视频架构师 黄挺
  5. 揭秘腾讯云最新音视频及融合通信技术实践
  6. 巧用 Protobuf 反射来优化代码,拒做 PB Boy
  7. 一起 goroutine 泄漏问题的排查
  8. 简述回源原理和CDN常见多级缓存
  9. configure: error: no termcap library found
  10. delete和delete[]的区别