7-6的一点问题

来源:7-6 LeetCode:76. 最小覆盖子串

goodmornight

2021-02-08

老师我想问一下,这段代码当中,因为needType已经为0了,那如果c2存在need中,不应该数量就是0吗?
图片描述

var minWindow = function(s, t) {

    let l = 0;
    let r= 0;
    let need = new Map();
    let res = '';

    for (let i of t) {
        need.set(i, need.has(i) ? need.get(i) + 1 : 1);
    }
    let needType = need.size;
    while(r < s.length) {

        const c = s[r];

        if(need.has(c)) {
            need.set(c, need.get(c) - 1);
            if(need.get(c) === 0) needType--;
        }

        while(needType === 0) {
            const newRes = s.substring(l, r + 1);
            if(!res || newRes.length < res.length) res = newRes;
            const c2 = s[l];
            if(need.has(c2)) {
                need.set(c2, need.get(c2) + 1);
                if(need.get(c2) === 1) needType++;
                // 为什么不能这么写呢?
                // need.set(c2, 1);
                // needType++;
            }
            l++;
        }

        r++;
    }
    return res;
};
写回答

1回答

lewis

2021-02-08

你可以在相应的位置打log,对比一下

0
0

JavaScript版数据结构与算法 轻松解决前端算法面试

夯实算法基础,填补技术短板,助力面试考题最后一公里

2481 学习 · 683 问题

查看课程