力扣top300:3. 无重复字符的最长子串

序号前300中非会员题

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

不定长滑动窗口题目

我们只需要使用哈希表存储窗口内的字符,然后滑动窗口,当出现重复字符时移动左指针即可,

每次遍历要更新结果。

很标准的三步:移入窗口,是否移出,更新结果

cpp 复制代码
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
    int l=s.size();
    int ant=0;
    unordered_map<char,int> m;
    for(int i=0,j=0;i<l;i++)
    {
        m[s[i]]++;
        while(j<=i&&m[s[i]]>1)
        {
            m[s[j]]--;
            j++;
        }
        ant=max(ant,i-j+1);
    }
    return ant;
    }
};
相关推荐
ghie909015 小时前
使用直接节点积分法进行无网格法2D悬臂梁计算
算法
Helibo4415 小时前
2025年12月gesp3级题解
数据结构·c++·算法
p&f°15 小时前
垃圾回收两种算法
java·jvm·算法
靠沿15 小时前
Java数据结构初阶——堆与PriorityQueue
java·开发语言·数据结构
点云SLAM15 小时前
点云配准算法之- GICP算法点云配准概率模型推导和最大似然求解(MLE)
算法·机器人·slam·点云配准·最大似然估计·点云数据处理·gicp算法
禾叙_15 小时前
HashMap
java·数据结构·哈希算法
曹轲恒15 小时前
双栈实现队列/双队列实现栈
算法
AI科技星15 小时前
张祥前统一场论电荷定义方程分析报告
开发语言·经验分享·线性代数·算法·数学建模
Swift社区15 小时前
LeetCode 460 - LFU 缓存
算法·leetcode·缓存
程芯带你刷C语言简单算法题15 小时前
Day39~实现一个算法确定将一个二进制整数翻转为另一个二进制整数,需要翻转的位数
c语言·开发语言·学习·算法·c