求js leetcode 最长不重复子字符串 和 Add Two Numbers的解法?

leetcode add two number Longest Substring Without Repeating Characters
1,Longest Substring Without Repeating Characters,我用了260ms,最快貌似200ms

var lengthOfLongestSubstring = function(s) {
    if (s.length < 2) return s.length;
    var start = 0, 
        end = 0,
        l = 0,
        len = s.length,
        hash = {};
    while (end < len) {
        if (hash[s[end]] >= start) {
            if (end - start > l) {
                l = end - start;
            }
            start = hash[s[end]] + 1;
        }
        hash[s[end]] = end++;
    }
    if (end - start > l) {
        l = end - start;
    }
    return l;
};

2,Add Two Numbers 好的话能刷到260ms, 最快貌似220ms多点

var addTwoNumbers = function(l1, l2) {
    var res = new ListNode(),
        p = res,
        c = 0;
    while (l1 || l2) {
        var n1 = 0, 
            n2 = 0;
        if (l1) {
            n1 = l1.val;
            l1 = l1.next;
        }
        if (l2) {
            n2 = l2.val;
            l2 = l2.next;
        }
        var tmp = n1 + n2 + c;
        c = 0;
        if (tmp > 9) {
            tmp -= 10;
            c = 1;
        }
        p.val = tmp;
        p.next = new ListNode();
        var t = p;
        p = p.next;
    }
    if (c === 1) {
        p.val = 1;
    } else {
        t.next = null;
    }
    return res;
};
阅读 2.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题