Problema da soma de três elementos

Escreva uma função que retorne todos os conjuntos de três elementos cuja soma seja 0.

Exemplos

threeSum([0, 1, -1, -1, 2]) ➞ [[0, 1, -1], [-1, -1, 2]]

threeSum([0, 0, 0, 5, -5]) ➞ [[0, 0, 0], [0, 5, -5]]

threeSum([1, 2, 3]) ➞ []

threeSum([1]) ➞ []

Observações

  • O array original pode conter números duplicados.
  • Cada subarray de três elementos na sua saída deve ser distinto.
  • Os subarrays devem ser ordenados pelo primeiro elemento do subarray.
  • Os próprios subarrays devem ser ordenados da mesma forma que o array original.
  • Retorne um array vazio se nenhum conjunto de três elementos somar zero.
  • Retorne um array vazio se houver menos de três elementos.