Al ver que mi pregunta estándar para ir al hacer entrevistas de CS para Google era de una nota al pie en CLR (primera edición), diría que Introducción a los algoritmos es una buena opción. Pero, de nuevo, ¿quién se molesta con las notas al pie de página cuando tiene 1,000 páginas para digerir? (Respuesta: de un tamaño de muestra de alrededor de 30, nadie.)
Si no sabe cómo hacer un análisis de complejidad, entonces Algorithms Unlocked es un mejor comienzo. Intenta explicar a tus padres el significado detrás de [matemáticas] O (\ cdot) [/ matemáticas], [matemáticas] \ Omega (\ cdot) [/ matemáticas] y [matemáticas] \ Theta (\ cdot) [/ matemáticas] o amigos no técnicos sin profundizar en las matemáticas. Concéntrese en la búsqueda de árboles y cadenas: esos son temas populares. Ser golpeado con temas avanzados como el análisis amortizado o las relaciones de recurrencia es raro y probablemente no valga la pena estudiarlo; la mayoría de las veces son preguntas de “bonificación” que no se espera que pueda responder. Tampoco debe esperar ninguna pregunta de Monte Carlo o Las Vegas, pero eso puede depender del rol que esté buscando.
Mejor aún, ve en frío. Un puñado de los entrevistados con los que hablé estaban tan obsesionados con los algoritmos que una pregunta SE los arrojó fácilmente (por ejemplo, “Mira este código y dime qué crees que está mal”). Uno incluso me maldijo. Escribir mi análisis de su idoneidad fue … entretenido .
- ¿Es cierto que dado cualquier gráfico con N vértices es un subgrafo inducido del subconjunto gráfico (N). ¿Cómo puedes probarlo o refutarlo?
- ¿Qué son los algoritmos de compresión de datos?
- ¿Cuál es el punto de usar programación dinámica cuando la complejidad de tiempo en la mayoría de los códigos es O (n ^ 2) (que no es tan bueno, es decir, usamos dobles para bucles incluso en DP)?
- ¿Cuáles son algunos problemas informáticos para los que no existe un enfoque de fuerza bruta?
- ¿Por qué los temas 'estructura de datos' y 'algoritmo' siempre están conectados? ¿Hay un curso o libro que solo se ocupe de la estructura de datos?