Amazon visitó recientemente nuestro campus para contratar pasantes para una pasantía de 6 meses.
Ronda 1: Prueba en línea
La ronda 1 fue una prueba en línea de 90 minutos. Fue alojado en la plataforma HackerRank. Hubo 20 preguntas MCQ y 2 preguntas de codificación. Las preguntas del MCQ fueron de 1 punto cada una. Hubo una calificación negativa de 0,25 por cada respuesta incorrecta de MCQ. Las preguntas de MCQ eran de estructuras de datos, DBMS, aptitude, etc.
Las preguntas de codificación fueron:
P1. Palabras inversas en una string dada
Q2. Posibles palabras de los dígitos del teléfono
Nota: Es muy importante hacer al menos una pregunta de codificación para completar esta ronda. Incluso si obtiene todos sus 20 MCQ correctos pero no hace ninguna pregunta de codificación, sus posibilidades de ser seleccionado son muy bajas. Sugiero que todos hagan todos los MCQ que puedan en los primeros 30 minutos y luego dediquen los últimos 60 minutos a las preguntas de codificación.
Hice 15 MCQ y 2 preguntas de codificación. Fui seleccionado para la siguiente ronda. En general, 19 estudiantes fueron seleccionados para la siguiente ronda.
Ronda 2: Entrevista
El entrevistador primero me preguntó sobre uno de mis proyectos que mencioné en mi CV. Entonces me hizo dos preguntas.
Q1. Se nos asigna un mapeo: A se asigna a 1, B se asigna a 2, C se asigna a 3 … Z se asigna a 26. Se nos da un número n, tenemos que decir cuántas strings distintas se pueden formar a partir de este número n usando el mapeo dado. Por ejemplo,
Entrada: 121
Salida: 3
Explicación: Podemos leer el número n como 1, 2 y 1. La string formada será ABA (1=A, 2=B). También podemos leer el número n como 12 y 1. La string formada será LA (12=L, 1=A). También podemos leer el número n como 1 y 21. La string formada será AU (1=A, 21=U). Entonces podemos formar un máximo de 3 strings distintas a partir del número 121 usando el mapeo dado.
Di una solución recursiva y el entrevistador quedó satisfecho con mi solución. Así que me pidió que codificara mi solución en un papel. Codifiqué la solución y luego revisó mi código. Una vez que estuvo satisfecho, pasamos al siguiente problema.
Q2. https://www.geeksforgeeks.org/remove-bst-keys-outside-the-given-range/
Después de un tiempo se anunció la lista de finalistas. 10 estudiantes fueron preseleccionados para la siguiente ronda. A mí también me preseleccionaron para la siguiente ronda.
Ronda 3: Entrevista final
Esta fue la entrevista final del proceso. El entrevistador primero me pidió que me presentara y luego me preguntó sobre uno de mis proyectos. Luego me hizo varias preguntas, que son las siguientes:
Q1. ¿Qué es un árbol binario? ¿Cuáles son los diferentes tipos de recorridos en un BT? ¿Cuál es la diferencia entre estos recorridos? ¿Cuál de los recorridos se basa en BFS y cuál se basa en DFS?
Respondí las preguntas apropiadamente. Quedó satisfecho con mis respuestas.
Q2. Recorrido de orden de nivel en forma de espiral
Una vez que le di la solución, me pidió que la codificara en un papel. Comprobó mi solución manualmente con algunos casos de prueba. Una vez que estuvo satisfecho, pasamos a la siguiente pregunta.
Q3. ¿Qué es un montón máximo? ¿Qué es un montón mínimo? ¿Cuáles son algunas aplicaciones de los montones en la vida real?
Q4. ¿Cómo insertar en un montón? ¿Cuál es la complejidad del tiempo?
P5. ¿Cómo eliminar un elemento mínimo de un montón mínimo? ¿Cuál es la complejidad del tiempo?
P6. Dada una array de n números, ¿cómo puedo construir un montón mínimo a partir de la array? ¿Cuál es la complejidad del tiempo?
Le respondí apropiadamente. Le dije que podemos resolver el problema anterior en complejidad de tiempo O(n). Luego me pidió que demostrara que la complejidad es O(n). Lo probé con una array de ejemplo. Quedó satisfecho con mi respuesta.
P7. Hay un flujo constante de números que provienen de una lista infinita de números a partir de los cuales debe mantener una estructura de datos para devolver los 100 números principales en un momento dado. Suponga que todos los números son solo números enteros.
Sol: Le di una solución usando min-heap. Podemos crear un montón mínimo de 100 elementos. Los primeros 100 elementos son fáciles de manejar. Digamos que obtenemos el elemento 101 de la lista. Si este número es menor que la raíz del montón binario, entonces no necesitamos hacer nada. Si este número es mayor que la raíz del montón binario, entonces debemos reemplazar el elemento raíz con este elemento y llamar al procedimiento de filtrado en la raíz del montón binario.
Mi entrevistador concluyó mi entrevista con esta pregunta.
Sugiero que todos pasen por las experiencias de entrevistas de Amazon de al menos 5 personas de geeksforgeeks.com antes de su proceso de selección de Amazon. Finalmente, diría que se concentre en las estructuras de datos, el sistema operativo, el DBMS y las redes. En estructuras de datos, céntrese principalmente en árboles binarios, montones binarios y listas enlazadas.
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.
Problemas de práctica relacionados
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