面试经典150题——Day31

文章目录

一、题目

3. Longest Substring Without Repeating Characters

Given a string s, find the length of the longest

substring

without repeating characters.

Example 1:

Input: s = "abcabcbb"

Output: 3

Explanation: The answer is "abc", with the length of 3.

Example 2:

Input: s = "bbbbb"

Output: 1

Explanation: The answer is "b", with the length of 1.

Example 3:

Input: s = "pwwkew"

Output: 3

Explanation: The answer is "wke", with the length of 3.

Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.

Constraints:

0 <= s.length <= 5 * 104

s consists of English letters, digits, symbols and spaces.

题目来源: leetcode

二、题解

双指针+滑动窗口

cpp 复制代码
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int n = s.length();
        if(n == 0) return 0;
        int i = 0;
        unordered_map<char,int> map;
        map[s[i]] = 1;
        int res = 1;
        for(int j = 1;j < n;j++){
            while(map[s[j]] == 1 && i < j){
                map[s[i]] = 0;
                i++;
            }
            if(map[s[j]] != 1) map[s[j]] = 1;
            res = max(res,j - i + 1);
        }
        return res;
    }
};
相关推荐
xueyongfu2 分钟前
从Diffusion到VLA pi0(π0)
人工智能·算法·stable diffusion
爱装代码的小瓶子6 分钟前
【c++进阶】从C++98到C++11的奇妙旅程(故事科普版)
开发语言·c++
永远睡不够的入12 分钟前
快排(非递归)和归并的实现
数据结构·算法·深度优先
cheems952713 分钟前
二叉树深搜算法练习(一)
数据结构·算法
sin_hielo15 分钟前
leetcode 3074
数据结构·算法·leetcode
Yzzz-F21 分钟前
算法竞赛进阶指南 动态规划 背包
算法·动态规划
程序员-King.24 分钟前
day124—二分查找—最小化数组中的最大值(LeetCode-2439)
算法·leetcode·二分查找
predawnlove29 分钟前
【NCCL】4 AllGather-PAT算法
算法·gpu·nccl
驱动探索者30 分钟前
[缩略语大全]之[内存管理]篇
java·网络·算法·内存管理
码农水水42 分钟前
腾讯Java面试被问:阻塞队列BlockingQueue的实现原理
java·后端·python·面试