Three Sum

Find all unique triplets in an array that sum to a target value.

Code

Algorithms
const a = [...arr].sort((x, y) => x - y);
const result = [];
for (let i = 0; i < a.length - 2; i++) {
  if (i > 0 && a[i] === a[i - 1]) continue;
  let l = i + 1, r = a.length - 1;
  while (l < r) {
    const sum = a[i] + a[l] + a[r];
    if (sum === target) {
      result.push([a[i], a[l], a[r]]);
      while (l < r && a[l] === a[l + 1]) l++;
      while (l < r && a[r] === a[r - 1]) r--;
      l++; r--;
    } else if (sum < target) l++;
    else r--;
  }
}
return result;

Parameters

Array of numbers

Target sum

Browser·fetch() may be limited by CORS

More JavaScript Snippets