Untitled
unknown
plain_text
10 months ago
669 B
7
Indexable
var threeSum = function (arr) { let result = []; arr.sort((a, b) => a - b); for(let i = 0; i < arr.length; i++) { if (i > 0 && arr[i] === arr[i - 1]) continue; let target = -arr[i]; twoSum(arr, target, i + 1, result); } return result; } function twoSum(arr, target, index, result) { let i = index; let j = arr.length - 1; while(i < j) { if(arr[i] + arr[j] === target) { while(i < j && arr[i] === arr[i + 1]) i++; while(i < j && arr[j] === arr[j - 1]) j--; result.push([-target, arr[i], arr[j]]); i++; j--; } else if(arr[i] + arr[j] < target) i++; else j--; } }
Editor is loading...
Leave a Comment