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)

相关推荐
倒头就睡的小比特1 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
猎头南楼1 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄1 天前
JavaScript 隐式全局变量解析
javascript
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark1 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her11 天前
并查集-听课笔记
笔记·算法·并查集
码流子1 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构