美文网首页
LeetCode15.三数之和 JavaScript

LeetCode15.三数之和 JavaScript

作者: LHH大翰仔仔 | 来源:发表于2019-01-20 10:17 被阅读10次

LeetCode15.三数之和 JavaScript

给定一个包含n个整数的数组 nums,判断 nums中是否存在三个元素 a,b,c,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

注意:答案中不可以包含重复的三元组。

例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],

满足要求的三元组集合为:
[[-1, 0, 1],[-1, -1, 2]]

答案参考:

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var threeSum = function(nums) {
    var result = new Array();
    var len = nums.length;
    var flag = 0;
    var hash = {};
    nums.sort((a, b) => {
        return a-b;
    });
    if(nums[0] > 0 || nums[len - 1] < 0) return result;
    for(var i = 0; i < len; i++){
        if(nums[i] === nums[i-1]) continue;
        flag = 0 - nums[i];
        var start = i + 1, end = len - 1;
        while(start < end){
            var middle = new Array();
            if(nums[start] + nums[end] < flag){
                start ++;
            } else if(nums[start] + nums[end] > flag){
                end--;
            } else {
                middle.push(nums[i]);
                middle.push(nums[start]);
                middle.push(nums[end]);
                if(!hash[middle]){
                    hash[middle] = true;
                    result.push(middle);
                }
                start += 1;
                end -= 1;
                while(start < end && nums[start] === nums[start - 1]){
                    start += 1;
                }
                while(start < end && nums[end] === nums[end + 1]){
                    end -= 1;
                }
            }
        }
    }
    return result;   
};
欢迎关注

相关文章

  • LeetCode15.三数之和 JavaScript

    LeetCode15.三数之和 JavaScript 给定一个包含n个整数的数组 nums,判断 nums中是否存...

  • leetcode15. 三数之和

  • LeetCode15. 三数之和

    题目 15. 三数之和 题目描述 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a...

  • leetcode15.三数之和

    题目链接 排序+双指针夹逼法 对于本题,无论是暴力求解,还是使用哈希表求解,我觉得都不如排序之后使用左右夹逼的方法...

  • leetcode15. 三数之和 python实现

    题目: 解法: 先对数组从小到大排序。 最外层遍历整个数组,再设置两个双指针,当三数之和小于0时,右指针向左移动一...

  • JavaScript三数之和

    var threeSum = function (nums) {if (nums.length < 3) {ret...

  • Javascript新法解旧题之【两数之和】

    Javascript新法解旧题之【两数之和】 题目如下: 示例 leetCood地址:两数之和 题目不难理解,首先...

  • algrithrom

    求和问题,双指针解决 done 两数之和 三数之和 最接近三数之和 四数之和 链表反转问题 done 链表反转 链...

  • LeetCode 第18题:四数之和

    1、前言 2、思路 采用三数之和的思路,原本三数之和可以分解为:数组中的一个数 + 此数右边的数求两数之和,那么四...

  • 两数之和&三数之和&四数之和&K数之和

    今天看了一道谷歌K数之和的算法题,忽然想起来之前在力扣上做过2、3、4数之和的题,觉得很有必要来整理一下。其实2、...

网友评论

      本文标题:LeetCode15.三数之和 JavaScript

      本文链接:https://www.haomeiwen.com/subject/vcqxjqtx.html