Leetcode 3.无重复字符的最长子串 JavaScript (Day 4)

js一刷法一(布尔集合)

javascript 复制代码
var lengthOfLongestSubstring = function (s) {
    let idx = new Set();
    let i = 0;
    let len = 0;

    for (let j = 0; j < s.length; j++) {


        while (idx.has(s[j])) {
            idx.delete(s[i]);
            i++;
        }

        idx.add(s[j]);
        len = Math.max(len, j - i + 1);
    }

    return len;
};

js一刷法二

javascript 复制代码
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function (s) {
    let idx = new Map();
    let i = 0;
    let len = 0;

    for (let j = 0; j < s.length; j++) {


        while (idx.get(s[j])) {
            idx.set(s[i], idx.get(s[i]) - 1);
            i++;
        }

        idx.set(s[j], (idx.get(s[j]) ?? 0) + 1);
        len = Math.max(len, j - i + 1);
    }

    return len;
};

核心思想:滑动窗口
语法细节: (idx.get(sj) ?? 0),如果左边是false的话返回0,否则返回idx.get(sj)

相关推荐
用户298698530148 分钟前
在 React 中使用 JavaScript 将 Excel 转换为 SVG
前端·javascript·react.js
烬羽27 分钟前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
labixiong40 分钟前
手写Promise--微任务、静态方法、async/await 全搞懂(三)
前端·javascript
铁皮饭盒2 小时前
3行代码搞定页面截图,Bun.WebView真的简单
javascript
kyriewen15 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
山河木马16 小时前
矩阵专题2-怎么创建视图矩阵(uViewMatrix)
javascript·webgl·计算机图形学
先吃饱再说16 小时前
判断回文字符串,从一行代码到双指针优化
算法
tangdou36909865517 小时前
AI真好玩系列-2分钟快速了解DeepAgents | Quick Guide to DeepAgents in 2 Minutes
前端·javascript·后端
张元清17 小时前
React useIntersectionObserver Hook:懒加载与可见性检测(2026)
javascript·react.js