3Sum LeetCode solution in JavaScript
1/**2* @param {number[]} nums3* @return {number[][]}4*/5var threeSum = function (nums) {6nums.sort((a, b) => a - b);78const ans = [];910for (let i = 0; i < nums.length - 2; i++) {11if (i === 0 || nums[i - 1] !== nums[i]) {12let j = i + 1;13let k = nums.length - 1;14while (j < k) {15if (nums[j] + nums[k] === -nums[i]) {16ans.push([nums[i], nums[j], nums[k]]);17j++;18while (j < k && nums[j - 1] === nums[j]) j++;19k--;20while (k > -1 && nums[k] === nums[k + 1]) k--;21} else if (nums[j] + nums[k] < -nums[i]) {22j++;23} else {24k--;25}26}27}28}2930return ans;31};