Escreva uma função que retorne todos os conjuntos de três elementos cuja soma seja 0.
Exemplos
ThreeSum(new int[] { 0, 1, -1, -1, 2 }) ➞ { { 0, 1, -1 }, { -1, -1, 2 } }
ThreeSum(new int[] { 0, 0, 0, 5, -5 }) ➞ { { 0, 0, 0 }, { 0, 5, -5 } }
ThreeSum(new int[] { 1, 2, 3 }) ➞ { }
ThreeSum(new int[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.