Hoy, un entrevistador me hizo esta pregunta. Mi respuesta inmediata fue que simplemente podíamos hacer una búsqueda lineal, comparando el elemento actual con el elemento anterior en la matriz. Luego me preguntó cómo se podía resolver el problema en un tiempo no lineal.En tiempo menos que lineal, busque el duplicado en una matriz ordenada
Supuestos
- la matriz es ordenados
- Sólo hay uno duplicar
- La matriz es solamente poblado con los números
[0, n]
, donden
es la longitud de la formación.
Ejemplo de array: [0,1,2,3,4,5,6,7,8,8,9]
I trató de llegar a un divide y vencerás algoritmo para resolver esto, pero no estoy seguro de que fuera la respuesta correcta. ¿Alguien tiene alguna idea?
su ejemplo incluye solo números '[0, n-2]' (no hay '10' , '11') ¿Es solo un ejemplo o una regla general? – jfs