Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * @param {number[]} nums
  3.  * @return {number[][]}
  4.  */
  5. var threeSum = function(nums) {
  6.     nums = nums.sort()
  7.     const solutions = {}
  8.    
  9.     for (let i = 0; i < nums.length; i++) {
  10.         const encountered = new Set()
  11.        
  12.         for (let j = i + 1; j < nums.length; j++) {
  13.             const valueToFind = -nums[i] - nums[j]
  14.            
  15.             if (encountered.has(valueToFind)) {
  16.                 if (!(nums[i] in solutions)) {
  17.                     solutions[nums[i]] = new Set()
  18.                 }
  19.                 solutions[nums[i]].add(nums[j])
  20.             }
  21.            
  22.             encountered.add(nums[j])
  23.         }
  24.     }
  25.    
  26.     const ret = []
  27.     for (const aStr in solutions) {
  28.         const a = +aStr
  29.        
  30.         for (const b of solutions[aStr]) {
  31.             const c = 0 - a - b
  32.             ret.push([a, b, c])
  33.         }
  34.     }
  35.  
  36.     return ret
  37. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement