码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode(双指针专题)

时间:2020-03-14 18:18:58      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:提示   ash   solution   sts   输入   刷题   字符串   ges   维护   

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(双指针专题)

标签:提示   ash   solution   sts   输入   刷题   字符串   ges   维护   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!