Encuentra el número único en un arreglo

Devuelve el entero cuya cantidad de apariciones difiere de la de los demás valores. Todos los demás valores aparecen la misma cantidad de veces. Si todos los valores proporcionados aparecen con la misma frecuencia, devuelve cualquiera de los valores del arreglo.

Ejemplos

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

Notas

  • No olvides usar return para devolver el resultado.
  • Ten en cuenta que este desafío incluye dos validaciones:
    1. Si la entrada está vacía, debes devolver null (ejemplo #3).
    2. Si el arreglo contiene un solo elemento, debes devolver ese elemento (ejemplo #2).
  • Siempre hay 1 o 0 números únicos en la entrada. Nunca hay dos ni tres+ números únicos.
  • Pista: Prueba a usar un diccionario para contar las apariciones.
  • Si te atascas o tu solución resulta demasiado complicada, consulta la pestaña Recursos.