[滑动窗口]leetcode3:无重复字符的最长子串(medium)

编程入门 行业动态 更新时间:2024-10-28 18:31:03

[滑动窗口]leetcode3:无重复字符的最<a href=https://www.elefans.com/category/jswz/34/1750047.html style=长子串(medium)"/>

[滑动窗口]leetcode3:无重复字符的最长子串(medium)

题解:

题解1:用set来表示窗口

class Solution {
public://滑动窗口,用set来存放窗口值int lengthOfLongestSubstring(string& s) {set<char> window;        //窗口,set不允许重复关键字,自动去重int left=0,right=0;     //窗口边界int result=0,n=s.size();while(right<n){if(window.find(s[right])==window.end())//没有出现重复字符,继续扩大窗口{window.insert(s[right++]);result=max(result,(int)window.size());}else//出现重复字符,缩小窗口{window.erase(s[left++]);}}return result;}
};

题解2:用hashmap来表示窗口

class Solution {
public:int lengthOfLongestSubstring(string s) {/*解法2:使用hashmap*/unordered_map<char,int> recond;int left=0,result=0;for(int right=0;right<s.size();++right){//若新遍历到字符已存在,那么我们直接将left更新到重复字符的下一个位置(隐含条件:重复字符下一个位置大于窗口的左边界下标);若不存在,则left不变left=max(left,recond[s[right]]);recond[s[right]]=right+1;//该字符的下个位置result=max(result,right-left+1);}return result;}
};

更多推荐

[滑动窗口]leetcode3:无重复字符的最长子串(medium)

本文发布于:2023-07-28 18:50:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279308.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:长子   字符   窗口   medium

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!