El algoritmo de tortuga y liebre de Floyd al que te refieres se pregunta comúnmente como detección de un ciclo en una lista vinculada. Cualquier entrevistador que haga esta pregunta es un entrevistador malo y flojo .
Preguntas como esta son bien conocidas por la mayoría de los candidatos y, por lo tanto, simplemente prueban si el candidato ha visto este problema de entrevista antes. Por supuesto, si no ha encontrado los ciclos en una pregunta de la lista vinculada, ha hecho poca o ninguna preparación para la entrevista, pero no estamos verificando si los candidatos se han preparado para las entrevistas.
Queremos evaluar la resolución de problemas, la codificación y las habilidades algorítmicas básicas.
- Llamaremos a un número "número agregado" si este número tiene el siguiente atributo: al igual que los números de Fibonacci 1,1,2,3,5,8,13 ... los dígitos del número pueden dividirse en varias partes, y la parte posterior es la suma de las partes anteriores.
- ¿Cuáles son las 5 principales compañías tecnológicas actuales en Silicon Valley con las entrevistas de ingeniería más difíciles?
- Cómo dejar de sentirse mediocre en algoritmos y estructura de datos en entrevistas técnicas
- Cómo prepararse para las entrevistas con desarrolladores Java (Spring, Hibernate)
- ¿Por qué los entrevistadores hacen preguntas fuera del alcance / experiencia?
Una buena pregunta de entrevista tiene algunas de las siguientes características:
1) una solución fácil de encontrar fuerza bruta,
2) una o más soluciones más eficientes que utilizan estructuras y algoritmos de datos básicos: por ejemplo, usar un árbol en lugar de una matriz puede hacer que la solución sea más eficiente
3) Una solución óptima que requiere bastante conocimiento
4) No se encuentra en todo internet.
Aquí hay una pregunta que no requiere nada más allá de las habilidades básicas de recursión, pero que tropieza con la mayoría de los candidatos.
Dadas dos cadenas “abc”, “123”, imprima todo el entrelazado de las dos cadenas de manera que el orden relativo de los caracteres en cada cadena no cambie.
Por ejemplo, a1b2c3 es un pedido válido, pero a3b2c1 no lo es.
Soy el creador de esta pregunta, por lo que es probable que no haya visto esto antes (y al publicar esta pregunta aquí, me arriesgo un poco a que mis entrevistados lo hayan visto :))
Además, ¿qué requiere esta pregunta más allá de las habilidades básicas de recursión?
Si le gustó esta respuesta, también le pueden gustar mis otras respuestas sobre entrevistas de programación, como:
Respuesta del usuario de Quora a ¿Cómo puedo conseguir un trabajo en Facebook o Google en 6 meses? Necesito un plan de trabajo conciso para construir un conjunto de habilidades lo suficientemente bueno. ¿Debo unirme a alguna otra startup o construir mis propios proyectos / start-ups? ¿Debería centrarme en practicar estructuras de datos y algoritmos?