Contratación en el campus de Amazon: 2019
Ronda 1 (ronda de codificación en línea):
Fue una ronda de codificación de 90 minutos de duración en la prueba mettl. Consistía en 2 preguntas de codificación y 28 MCQ. Las preguntas de codificación fueron de categoría fácil a media. La primera pregunta fue cambiar una string por otra con alguna modificación (prácticamente una pregunta de implementación). En la segunda pregunta, se le da una string que contiene solo del 0 al 9 y debe devolver el número de string módulo 11. Se seleccionaron alrededor de 60 personas para más rondas.
Sugerencia : si usa c o c ++, revise sus conceptos de puntero porque las entradas de funciones y el tipo de retorno son punteros en mettl. También revise la asignación de memoria estática y dinámica porque si no asigna memoria usando new o malloc, su puntero de retorno apuntará a NULL (muchas personas se atascaron).
Ronda-2 (Entrevista presencial-1):
El entrevistador fue muy agradable y tranquilo. Empezó pidiéndome que me presentara.
Q1. Se le dan dos listas enlazadas. Cada Node contiene un dígito entre 0 y 9. Debe crear una nueva lista vinculada que contenga la suma de ambas listas vinculadas. Además, no puede modificar las listas vinculadas dadas.
Ejemplo :
input1 – encabezado->7->9->NULO.
input2 – cabezal->3->6->2->NULL.
cabeza de salida->4->4->1->NULL.
Q2 . El hotel XYZ quiere realizar N reuniones en un día en particular. Se le da la hora de inicio y la hora de finalización de cada reunión. Debe devolver el número mínimo de habitaciones requeridas en el hotel XYZ.
Ejemplo:
entrada – N: 6, horario de reuniones – [9:00, 9:45], [9:30, 10:30], [10:40, 12:00], [11:00, 13:00], [ 11:45, 14:00], [16:00, 17:00]
salida – 3 habitaciones requeridas.
Me pidió que escribiera el código adecuado para las preguntas anteriores. Lo probó con algunos casos de prueba de borde. Luego me preguntó acerca de las diferentes técnicas de clasificación y preguntas como «para qué casos, la clasificación rápida ejecuta O (n ^ 2)». Esta ronda duró una hora.
Ronda-3 (Entrevista presencial-2):
El entrevistador comenzó preguntando sobre mí y luego pasó a los proyectos que he realizado. Después de algunas preguntas sobre proyectos, comenzó con las preguntas sobre la estructura de datos. Tengo que escribir el código adecuado para ambas preguntas.
Q1. Se le da un árbol binario. Tienes que imprimir su borde exterior en sentido contrario a las agujas del reloj.
Q2. Has dado una array N x M. cada elemento de la array es 0, 1 o 2. El dígito ‘0’ significa que el lugar está inicialmente vacío. El dígito ‘1’ significa que ese lugar contiene mango “bueno”. El dígito ‘2’ significa que ese lugar contiene mango «malo». En una iteración de un día, el mango «bueno» que está adyacente (arriba, abajo, izquierda, derecha) a cualquier mango «malo» se convertirá en mango «malo». Empiezas desde el primer día y tienes que encontrar el día mínimo en el que no habrá mango “bueno” o salida -1 si es imposible.
Me tomé demasiado tiempo en la primera pregunta. Entonces, no se me ocurrió una solución optimizada para la segunda pregunta y tuve que dar una fuerza bruta. Esta ronda duró 45 minutos.
Ronda-4 (Entrevista presencial-3):
Siento que esta fue la ronda más difícil para mí, pero obtuve la solución en unos minutos.
P. Las requests de URL están llegando a algún servidor. Ahora tiene que diseñar algún tipo de estructura de datos de modo que en cualquier momento pueda devolver las 100 URL más frecuentes.
Se me ocurrió una solución usando hashmap y heap. Pero no tengo permitido usar STL, así que tengo que escribir la implementación para hashmap y heap. Luego me hizo algunas preguntas sobre OS, OOP y DBMS. Esta ronda duró una hora.
Ronda-5 (Entrevista presencial-4):
Esta fue la última ronda. La persona que me entrevistó parecía un desarrollador senior. Comenzó preguntándome sobre mi área de intereses, proyectos que he realizado, etc. Luego, después de un tiempo, comenzó a hacer preguntas de DP.
Q1. Has dado rod de longitud n y una array que contiene la longitud y el precio de rod. Ahora hay que devolver precio máximo cortando varilla de forma óptima.
Q2. Has dado una array. Tienes que encontrar el siguiente máximo para cada índice. -1 si no hay un máximo siguiente en la array.
Luego comenzó a hacer preguntas sobre el sistema operativo, como la diferencia entre el proceso y el subproceso, qué es la paliza, qué es la tabla de procesos y cómo se usa, diferentes tipos de algoritmos de programación de CPU, qué son los índices (DBMS) y por qué y dónde se usan, mutex vs semáforos, etc. Luego me hizo dos consultas SQL. Esta ronda duró más de una hora.
Después de un día y medio de proceso, fui seleccionado para la pasantía de invierno de Amazon.
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