题目描述:

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

示例:

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

初始代码:

class Solution {
public:int lengthOfLongestSubstring(string s) {map<char, int> dict;int maxlen = 0;for(int i = 0; i < s.length(); i++){int len = 0;for(int j = i; j < s.length(); j++){if(dict[s[j]]!=0){dict.erase(dict.begin(),dict.end());break;}len++;dict[s[j]]++;}if(len > maxlen) maxlen = len;len = 0;}return maxlen;}
};

提交后显示超时。

改进代码:

class Solution {
public:int lengthOfLongestSubstring(string s) {unordered_map<char, int> mp;int left = 0, right = 0;int maxlen = 0;for(right; s[right]; right++){while(mp[s[right]] != 0 && left != right){//找新无重复字符串的起始位置mp[s[left]] = 0;left ++;}mp[s[right]] = 1;maxlen = max(maxlen, right-left+1);}return maxlen;}
};

官方题解使用滑块思想,left和right控制滑块边界,比for循环降低了时间复杂度。

学习自http://reckful.studio/2017/11/07/LeetCode/LeetCode%200003%20-%20Longest%20Substring%20Without%20Repeating%20Characters/

LeetCode热门100之 无重复字符的最长子串相关推荐

  1. (LeetCode刷题)Day03 无重复字符的最长子串

    无重复字符的最长子串 [3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest ...

  2. leetcode 刷题 3. 无重复字符的最长子串解题思路

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

  3. LeetCode精讲 03无重复字符的最长子串(滑动窗口)

    题目描述 原创作者:bigsai,维护不易,如有收获,还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcb ...

  4. 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)

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

  5. (LeetCode)Java 求解无重复字符的最长子串

    文章目录 一.题解 二.代码 三.总结 一.题解 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因 ...

  6. 【LeetCode 3-中等】无重复字符的最长子串(高清截图)

    3. [中等]无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给 ...

  7. 【LeetCode笔记】3. 无重复字符的最长子串(JAVA、滑动窗口、字符串)

    文章目录 题目描述 思路 && 代码 1. 之前的版本 更新 2.0 题目描述 子串:各字符间必须要相邻,而非子序列 使用滑动窗口来做就行 思路 && 代码 1. 之前 ...

  8. leetcode刷题:无重复字符的最长子串

    题目: 分析: 取巧解法,通过set class Solution { public:int lengthOfLongestSubstring(string s) {if(s.size() == 0) ...

  9. 【Leetcode | 1】3. 无重复字符的最长子串

    这里我们可以建立一个HashMap,建立每个字符和其最后出现位置之间的映射,然后我们需要定义两个变量res和left,其中res用来记录最长无重复子串的长度,left指向该无重复子串左边的起始位置的前 ...

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

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

最新文章

  1. Effective Java 阅读笔记——方法
  2. 在.net中读写XML方法的总结[转]
  3. Filecoin网络目前总质押量约为3570万枚FIL
  4. Feign-手动创建FeignClient
  5. python——周边
  6. Xcode 12 导出ipa包
  7. 线程基础阶段性总结和扩展(一)
  8. 问道虚拟机服务器地址,问道架设安装详细说明
  9. 人工智能-动物识别专家系统(pyqt5)
  10. 单片机多级菜单的简单实现
  11. 设置app icon角标
  12. OpenFPGA 环境配置及问题解决
  13. ToolStrip工具条
  14. 1939 Users That Actively Request Confirmation Messages
  15. Docker Registry 私有镜像仓库批量清理镜像
  16. 剑指Offer——联通研究院笔、面试题 (Offer-1已收割)
  17. JavaScript Boolean(逻辑)对象
  18. Vue、Vuejs从入门到精通 | Vue CLI详解
  19. 2、电商数仓(业务数据采集平台)
  20. 手机黑屏时为什么不显示网络连接服务器,闪耀暖暖手机黑屏解决办法

热门文章

  1. 反射+自定义属性拼接sql
  2. 最新BBS上的变态网名大全
  3. PyCharm 激活 截止日期2100年1月
  4. 怎么禁用计算机usb驱动程序,win7如何禁止USB自动安装驱动程序
  5. 开源组件安全漏洞检测主流工具对比
  6. 骑士CMSgetshell复现
  7. 【CSS】span标签设置宽度
  8. 麻省理工十亿美元计算机学院,麻省理工学院宣布10亿美元成立新计算机学院 | 芥末堆...
  9. 用户行为监控(Piwik)
  10. 计算机基础及Python简介