Leetcode(双指针专题)

Posted Ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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维护保证不重复。

以上是关于Leetcode(双指针专题)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode(双指针专题)

leetcode双指针专题

LeetCode日记——算法双指针专题

面试专题训练之“双指针”

《寒假算法集训》(专题十一)双指针

LeetCode 641 设计循环双端队列[双指针] HERODING的LeetCode之路