El problema no requiere encontrar los primeros dos números, sino cualquier par de enteros viables de la secuencia.
El entrevistador se habría sorprendido y complacido de tener una respuesta casi perfecta.
Él o ella estaba buscando su interpretación y el marco del problema. Estaban buscando su descubrimiento de lo que era desconocido o indefinido en el problema, eso sería importante. Estaban buscando para ver si hiciste preguntas para tratar de responder esas incógnitas, o si tenías una solución lista incluso con los puntos sin respuesta. Si los puntos permanecieron desconocidos, ¿asumió una opción, declarando esa limitación de la solución, o ramificó el problema, reconociendo que se necesitaban soluciones en cada alternativa?
- ¿Cuándo es bueno representar un árbol binario como una matriz?
- ¿Cómo uso vectores para una matriz 2D en C ++?
- ¿Qué algoritmo puedo usar para hacer que una imagen se vea más caricaturesca?
- ¿Qué es el algoritmo LSH Forest?
- ¿Los mismos algoritmos dan resultados diferentes en diferentes paquetes / idiomas?
Para principiantes:
No conocemos la distribución de los valores dentro del flujo interminable de enteros, ni si la distribución cambia con el tiempo.
Tampoco sabemos si el programa controla la entrada del siguiente número, o si la llegada de la secuencia es impulsada por un proceso externo.
No nos dieron un límite de tiempo.
Ni siquiera nos dijeron si los enteros estaban limitados por los valores representables más grandes en el lenguaje de la solución programada, o si estaríamos tomando enteros, en el sentido matemático puro, como en el conjunto de todos los números enteros.
Y no es cierto que un hash nunca agote la memoria.
Un posible enfoque:
Suposiciones
- Los números se pueden leer de la secuencia en orden, cuando nuestro programa está listo para leerlos.
- Los números están delimitados +/- algún múltiplo de N.
- Todos los números dentro de ese rango finalmente están en la secuencia.
- Como el flujo de números es continuo, cada número entero volverá a aparecer, dado el tiempo suficiente.
Si el entrevistador acepta que estos supuestos están permitidos, escriba un programa a
lee el número inicial N
Si N = cero
Imprimir 1 y – 1
Más
Imprime 0 y el número N
salida.