Si la matriz es A, los posibles candidatos para el elemento más frecuente son:
A [0], A [N / 3], A [2N / 3], A [N – 1]
(Gracias a Tim Converse por señalar los casos que había pasado por alto en mi respuesta anterior)
Hay 8 situaciones posibles:
caso 1: X = A [0] = A [N / 3] pero X! = A [2N / 3]! = A [N-1]
caso 2: X = A [N / 3] = A [2N / 3]
caso 3: X = A [2N / 3] = A [N-1] pero X! = A [N / 3]! = A [0]
caso 4: X = A [0] = A [N / 3] = A [2N / 3]! = A [N-1]
caso 5: X = A [N / 3] = A [2N / 3] = A [N-1]! = A [0]
caso 6: X = A [0] = A [N / 3] = A [2N / 3] = A [N-1]
caso 7: X = A [0] = A [N / 3] e Y = A [2N / 3] = A [N-1] y X! = Y
caso 8: A [0]! = A [N / 3]! = A [2N / 3]! = A [N-1]
Los casos 1,3,7 y 8 requieren que eliminemos a los candidatos al examinar localmente cada uno de estos elementos. Para los casos 2,4,5 y 6, la respuesta es inmediata.
Este algoritmo es O (1) en el mejor de los casos y O (N) en el peor.
- Rompecabezas lógicos: hay 10 camaleones rojos, 11 azules y 12 verdes. A veces, dos camaleones se encuentran. Si son del mismo color, no pasa nada. Si son de diferentes colores, ambos cambiarán al tercer color. ¿Pueden todos los camaleones ser del mismo color?
- ¿Cómo podemos sumar dos números con múltiples bases?
- ¿Cuáles son algunos acertijos geniales que te abren la mente?
- ¿Cómo se juntan los cubos de Rubik?
- ¿Qué se siente saborear un problema lógico o matemático?