Primera ronda (ronda en línea)
Tenía unas 15 preguntas mcq, la mayoría de ellas técnicas, tenía preguntas de casi todas las materias de informática que aprendimos en la universidad. Tuve la suerte de adivinar correctamente la mayoría de las preguntas, por lo que me llamaron para la ronda de codificación.
Segunda ronda
Para los estudiantes seleccionados, hubo una ronda de codificación que tenía 2 preguntas estándar en estructuras de datos, de GeeksforGeeks.org. Resolví una pregunta por completo con todos los casos de prueba funcionando, y los resultados posteriores aparecieron después de 1 mes. Tuve suerte nuevamente de pasar esta ronda sin tener que resolver un programa resolviendo solo un programa….
Tercera ronda
La siguiente ronda fue una ronda de vuelo grupal (ronda de programación escrita) seguida de entrevistas técnicas en persona. Estas rondas se llevaron a cabo en Bangalore.
- Encuentre el ancestro menos común de dos Nodes en un árbol binario .
Le pregunté a la persona asignada para mi grupo si podía cambiar la estructura del Node, haciendo que el árbol tuviera punteros principales, y esa persona dijo que estaba bien. Entonces, cambié la estructura e hice que tuviera punteros principales, y también usé una variable de bandera booleana, luego fue muy simple; cuando dos Nodes tienen un Node común en su camino desde sí mismos hasta la raíz, entonces ese Node es el ancestro de estos dos Nodes. Así que supuse que la función tenía tres parámetros, raíz, Node1 y Node2…). Y primero asumí que la bandera de todos los Nodes era cero, luego atravesé de un Node a la raíz, haciendo que cada Node en esa ruta tuviera la variable de bandera establecida en 1. Más tarde atravesé del segundo Node a la raíz, y mientras lo atravesaba verifiqué si la variable flag ya era 1 para cualquiera de los Nodes, si lo era, entonces devolví ese Node como el ancestro de estos dos Nodes…
Expliqué esto bien con todos los casos de prueba… para que la persona asignada a mi grupo estuviera contenta con mi solución. - Dadas dos arrays ordenadas (con elementos repetitivos), encuentre el k-ésimo número mínimo de ambas arrays.
Mi enfoque para este problema fue mantener un índice para cada array, ambos inicializados en el primer elemento de su array respectiva. Repita k veces y en cada iteración encuentre el elemento mínimo entre los índices actuales e incremente el índice de la array que contiene el mínimo. Si los elementos son iguales, incrementa ambos índices. La complejidad del tiempo es O(k).
Expliqué esto bien nuevamente con todos los casos de prueba y me aseguré de que la persona asignada a mi grupo estuviera contenta con mi solución.
Como me aseguré de ocuparme de los casos de esquina y, lo que es más importante, satisfizo a la persona asignada a mi grupo con la solución que di, me llamaron para una entrevista en persona.
Entrevista en persona
Una introducción rápida y breve. Hablamos dentro y fuera de mi proyecto, y también quería ver mi aplicación en mi teléfono. Hizo algunas preguntas básicas sobre la implementación del proyecto.
Más tarde me hizo una pregunta técnica, Doblar y fusionar una lista enlazada… Estaba comparativamente un poco menos nervioso ahora, pero todavía no era muy bueno en la codificación en papel… cometí muchos errores pero de alguna manera escribí algo de código… pero había algunos errores aquí y allá que encontré y corregí cuando me lo señaló… Pero esta vez no tuve la suerte y fui rechazado después de esta ronda.
Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA