码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 15. 3Sum

时间:2019-12-15 00:54:42      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:else   sum   amp   UNC   twosum   log   turn   ons   function   

function threeSum(nums) {
    nums.sort((a, b) => a - b);
    var res = [];

    if (nums.length < 3 || nums[0] > 0 || nums[nums.length - 1] < 0) {
        return res;
    }
    for (var i = 0; i < nums.length; i++) {
        if (i > 0 && nums[i] == nums[i - 1]) {
            continue;
        }
        twoSum(nums, i, res);
    }
   // console.log(res);
    return res;
}
function twoSum(nums, start, res) {
    var l = start + 1,
        r = nums.length - 1;
    while (l < r) {
        var sum = nums[start] + nums[l] + nums[r];
        if (sum == 0) {
            var temp = [nums[start], nums[l], nums[r]];
            res.push(temp);

            //去重
            while (l < r && nums[l] == nums[l + 1]) l++;
            while (l < r && nums[r] == nums[r - 1]) r--;

            l++;
            r--;
        } else if (sum > 0) {
            r--;
        } else if (sum < 0) {
            l++;
        }
    }
}

leetcode 15. 3Sum

标签:else   sum   amp   UNC   twosum   log   turn   ons   function   

原文地址:https://www.cnblogs.com/rubylouvre/p/12041541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!