Recientemente asistí al proceso sin cita previa para la campaña de reclutamiento de Amazon Off campus. Esto fue para el puesto de SDE en Chennai. Me gustaría compartir mi experiencia de entrevista con Geeks for Geeks.
Ronda escrita:
a) Dada una lista enlazada y 2 enteros M y N. Mantenga M Nodes y elimine N Nodes repetidamente hasta el final de la lista enlazada.
b) Dado un BST, reemplace el valor de un Node con la suma de todos los elementos más grandes que el Node actual.
Podría resolverlo con Reverse Inorder traversal y un puntero int para realizar un seguimiento de la suma.
b) Dado un BT, compruebe si hay un BST en él. Si existe imprima el BST más grande en el BT.
c) Dado un archivo grande con gran cantidad de palabras, agrupe los anagramas de una palabra
hai how are you. iahohw hecho woh.
o/p:
hai ->iah
cómo ->woh ->ohw
hecho
son
2da ronda F2F:
a) Dada una lista enlazada, imprime el enésimo último Node. Me pidió que le diera la solución optimizada para ello .
Resuelto usando puntero lento.
b) Encuentre el LCA en Binary Tree
. Me pidió que optimizara el código con un enfoque de abajo hacia arriba y me dio muchas condiciones de contorno.
c) Dado un recorrido en zigzag, construya un árbol a partir de él. Se solicitó el código de trabajo completo.
eg. 1 3 2 4 5 6 7 9 8 1 2 3 4 5 6 7 8 9
Lo resolvió con una cola de dos extremos.
3ra ronda F2F:
a) Dado un tablero de ajedrez de longitud finita, posición inicial de un caballo, una posición final.
-> encontrar si la posición final es alcanzable por el caballo.
-> Número de saltos mínimos necesarios para llegar a esa posición.
Se me ocurrió una solución BFS al instante. Él planteó varias condiciones en la misma pregunta como ya he visto la pregunta.
b) Cambió la pregunta a tablero de ajedrez de longitud infinita y si se dan dos caballos en un tablero de ajedrez, encuentre los saltos mínimos necesarios para que se encuentren.
-> dio una gran cantidad de limitaciones de espacio y tiempo.
->me pidió que escribiera el código completo sin STL.
c) si codificamos A-1, B-2, C-3, envío una palabra CAMP codificada como 311316. Se puede decodificar como 3 11 3 16 (CKCP), 3 1 1 3 16 (CAACP), 3 1 1 3 1 6 , (CAACAF) . dada una string codificada de entrada, encuentre el no. formas en que se puede decodificar. (Problema de ACODE en Spoj)
311316 – 4
-> No se pudo encontrar una solución de DP al principio, así que di una solución con un árbol de recursión. Me pidió que optimizara para evitar cálculos innecesarios. Finalmente lo resolví usando DP.
4ta ronda F2F (Ronda Bar Raiser):
La Ronda comenzó con los proyectos que he hecho hasta ahora. Algunas preguntas básicas en computación en la nube. He utilizado Amazon Web Service (AWS) en uno de mis proyectos.
a) Muchas preguntas sobre AWS. Por qué lo usamos cuando hay tantas alternativas.
b) Cuando lo convencí con los problemas de escalabilidad, planteó preguntas sobre cómo AWS maneja los problemas de equilibrio de carga y escalabilidad.
c) Obviamente preguntas sobre Elastic Map Reduce y Elastic Block Storage. Las preguntas se acumularon hasta que pude explicar cada rincón y rincón de ese proyecto.
d) Fortalezas y Debilidades.
e) Por qué Amazon y por qué dejo mi empresa anterior dentro de 2 meses.
f) Dada una lista enlazada con punteros aleatorios, clone la lista enlazada.
Dio algunas soluciones y me pidió que clonara sin manipular la lista enlazada original pero con espacio extra. Se me ocurrieron pequeños ajustes usando HashMap
Map < node * , node *> key es el Node y el valor es el Node ptr aleatorio.
g) Encontrar el techo y el piso de un valor en un BST dado sin espacio adicional.
si un BST contiene 1 3 6 7 9 12
->si el valor dado es 8, el piso es 7 y el techo es 9.
->si el valor dado es 9, tanto el piso como el techo son 9.
PD Tenga cuidado al explicar sus proyectos.
5.ª ronda F2F: (Ronda de gerentes de contratación):
Algunas preguntas sobre proyectos y ventajas de AWS.
a) Me preguntó sobre los diferentes métodos de comunicación entre procesos.
b) ¿Qué método es más rápido y por qué? Luego me pidió que le explicara sobre la memoria compartida.
c) Pidió escribir el código para implementar el caché LRU.
d) Luego codifique para la implementación de malloc dada una array.
e) Me pidió que escribiera un código seguro para subprocesos para el escenario dado.
dados dos hilos de escritor y dos hilos de lector. dar un mecanismo para manejar los subprocesos de escritor y lector. El subproceso escritor escribe un valor 1 2 3 4 en una cola o array y el subproceso lector lo lee e imprime el resultado como 1, 2, 3, 4… En el mismo orden dado y solo una vez…
-> lo manejé con un semáforo binario y una única cola para el lector y el escritor.
f) condiciones para un interbloqueo y me pidió que lo asociara con el escenario de la vida real.
exclusión mutua y todos los casos.
g) Diferentes tipos de programación y qué tipo de programador tiene Linux y por qué.
h) ¿Linux tiene programación preventiva y pocas preguntas sobre la memoria virtual?
Simplemente analizó mi enfoque hacia el problema y verificó mi comprensión básica de los conceptos del sistema operativo.
Finalmente recibí una oferta de Amazon después de dos días. Le debo un gran agradecimiento a GeeksForGeeks. Me ayudó mucho a mejorar mi estructura de datos y mis habilidades para resolver problemas. Espero que esto te ayudará. Mis mejores deseos .
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.
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