Leetcode(双指针专题)

Leetcode双指针刷题记录

  • 面试题48.最长不含重复字符的子字符

    题目描述

    请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

    示例1:

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

    提示:

    • s.length <= 40000
  • 先上代码

    class Solution {
    public:
        int lengthOfLongestSubstring(string s) {
            unordered_map<char,int> hash;
            int ans = 0;
            for(int  i = 0, j = 0; i < s.size(); i++)
            {
                hash[s[i]]++;
                while(hash[s[i]] > 1)
                {
                    hash[s[j]] --;
                    j++;
                }
                ans = max(ans,i - j + 1);    
            }
            return ans;
        }
    };
    
  • 题解思路

    双指针 i, j 来试探不重复的区间,hash维护保证不重复。

原文地址:https://www.cnblogs.com/Lysz1996/p/12493355.html