Encontre o número único em um array

Retorne o inteiro cuja quantidade de ocorrências difere da dos demais valores. Todos os outros valores ocorrem o mesmo número de vezes. Se todos os valores fornecidos ocorrerem com a mesma frequência, retorne qualquer valor do array.

Exemplos

Program.FindSingleNumber(new[] {2, 2, 2, 3, 4, 4, 4}) ➞ 3

Program.FindSingleNumber(new[] {2}) ➞ 2

Program.FindSingleNumber(System.Array.Empty<int>()) ➞ null

Program.FindSingleNumber(new[] {7, 13, 3, 6, 5, 4, 4, 13, 5, 3, 6, 7, 6, 5, 3, 13, 4, 7, 13, 5, 7, 4, 3, 6, 8, 4, 3, 7, 5, 6, 13}) ➞ 8

Program.FindSingleNumber(new[] {1, 2, 3, 6, 5, 4, 4, 2, 5, 3, 6, 1, 6, 5, 3, 2, 4, 1, 2, 5, 1, 4, 3, 6, 101, 4, 3, 1, 5, 6, 2}) ➞ 101

Observações

  • Não se esqueça de usar return para retornar o resultado.
  • Este desafio inclui duas verificações:
    1. Se a entrada estiver vazia, retorne null (exemplo #3).
    2. Se o array contiver apenas um elemento, retorne esse elemento (exemplo #2).
  • Sempre há 1 ou 0 números únicos na entrada. Nunca há dois nem três+ números únicos.
  • Dica: Experimente usar um dicionário para contar as ocorrências.
  • Se você não souber como continuar ou sua solução ficar complicada demais, consulte a aba Recursos.