跳转至

滑动窗口

本页统计信息
  • 本页约 98 个字, 18 行代码, 预计阅读时间 1 分钟。

  • 本页总阅读量

0003. 无重复字符的最长子串

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

滑动窗口的经典题目,用一个map记录每个字符出现的次数,在窗口滑动的过程中保证任何一个字符出现的次数不要大于2就可以了。

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        // 滑动窗口的经典题目
        int left = 0, right = 0, maxl = 0;
        map<char, int> mp;
        while (right < s.size()) {
            mp[s[right]] += 1;
            while (mp[s[right]] >= 2) {
                mp[s[left]] -= 1;
                left += 1;
            }
            maxl = max(maxl, right - left + 1);
            right += 1;
        }
        return maxl;
    }
};

颜色主题调整

评论区~

有用的话请给我个star或者follow我的账号!! 非常感谢!!
快来跟我聊天~