zoukankan      html  css  js  c++  java
  • 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;
       
        
    };
  • 相关阅读:
    160. Intersection of Two Linked Lists
    155. Min Stack
    TensorRT caffemodel serialize序列化
    141. Linked List Cycle
    异或运算的性质及应用
    136. Single Number
    【leeetcode】125-Valid Palindrome
    c++函数参数类型-引用、指针、值
    【linux基础】linux远程登录SSH
    【leetcode】122-Best Time to Buy and Sell Stock II
  • 原文地址:https://www.cnblogs.com/lhh520/p/10294005.html
Copyright © 2011-2022 走看看