LeetCode热门100之 无重复字符的最长子串
题目描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例:
输入: "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之 无重复字符的最长子串相关推荐
- (LeetCode刷题)Day03 无重复字符的最长子串
无重复字符的最长子串 [3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest ...
- leetcode 刷题 3. 无重复字符的最长子串解题思路
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&q ...
- LeetCode精讲 03无重复字符的最长子串(滑动窗口)
题目描述 原创作者:bigsai,维护不易,如有收获,还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcb ...
- 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- (LeetCode)Java 求解无重复字符的最长子串
文章目录 一.题解 二.代码 三.总结 一.题解 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因 ...
- 【LeetCode 3-中等】无重复字符的最长子串(高清截图)
3. [中等]无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给 ...
- 【LeetCode笔记】3. 无重复字符的最长子串(JAVA、滑动窗口、字符串)
文章目录 题目描述 思路 && 代码 1. 之前的版本 更新 2.0 题目描述 子串:各字符间必须要相邻,而非子序列 使用滑动窗口来做就行 思路 && 代码 1. 之前 ...
- leetcode刷题:无重复字符的最长子串
题目: 分析: 取巧解法,通过set class Solution { public:int lengthOfLongestSubstring(string s) {if(s.size() == 0) ...
- 【Leetcode | 1】3. 无重复字符的最长子串
这里我们可以建立一个HashMap,建立每个字符和其最后出现位置之间的映射,然后我们需要定义两个变量res和left,其中res用来记录最长无重复子串的长度,left指向该无重复子串左边的起始位置的前 ...
- php无重复字符的最长子串,PHP算法之无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
最新文章
- Effective Java 阅读笔记——方法
- 在.net中读写XML方法的总结[转]
- Filecoin网络目前总质押量约为3570万枚FIL
- Feign-手动创建FeignClient
- python——周边
- Xcode 12 导出ipa包
- 线程基础阶段性总结和扩展(一)
- 问道虚拟机服务器地址,问道架设安装详细说明
- 人工智能-动物识别专家系统(pyqt5)
- 单片机多级菜单的简单实现
- 设置app icon角标
- OpenFPGA 环境配置及问题解决
- ToolStrip工具条
- 1939 Users That Actively Request Confirmation Messages
- Docker Registry 私有镜像仓库批量清理镜像
- 剑指Offer——联通研究院笔、面试题 (Offer-1已收割)
- JavaScript Boolean(逻辑)对象
- Vue、Vuejs从入门到精通 | Vue CLI详解
- 2、电商数仓(业务数据采集平台)
- 手机黑屏时为什么不显示网络连接服务器,闪耀暖暖手机黑屏解决办法