Experiencia de entrevista de Amazon | Conjunto 384 (en el campus para FTE)

Ronda de codificación en línea:
Plataforma: Hackerearth
Tiempo: 1,5 h
Formato de preguntas: 20 MCQ + 2 preguntas de codificación
Las MCQ se basaron en estructuras de datos, sistema operativo, redes, etc.
Preguntas de codificación:
1) encuentre el ji máximo tal que arr[j]>arr[ i]
Complejidad de tiempo esperada: O(n)
2) encontrar el máximo o el mínimo de cada tamaño de ventana en la array
Solo la solución optimizada (O(n)) usando la pila pudo pasar todos los casos de prueba.

Alrededor de 37 estudiantes fueron seleccionados de la ronda de codificación y fueron llamados a más rondas de entrevistas.

Ronda 1 (Presencial):
Tiempo: 45 minutos
El entrevistador fue muy bueno. Me pidió que me presentara y una breve introducción de los proyectos que he realizado. Luego pasó a la parte de estructuras de datos.
Una pregunta fue que dada una array que contiene el mismo número de elementos positivos y negativos, organice la array de manera que cada elemento positivo sea seguido por un elemento negativo. Le expliqué el enfoque O(n) separando primero los elementos positivos y negativos con 0 como pivote y luego organizándolos alternativamente. Me pidió que escribiera un código para eso que cubre todos los casos de esquina.
La segunda pregunta fue simple para revertir la lista enlazada en grupos de tamaño k dado.
Ella me pidió que escribiera código para eso.

Ronda 2 (cara a cara):
Tiempo: 45 minutos
El entrevistador fue muy tranquilo y cooperativo. Me preguntó cómo me fue en mi ronda anterior. Luego pasó a las preguntas.
Una pregunta era simple para encontrar el cruce de límites del árbol binario. Me pidió que escribiera código para eso.
La segunda pregunta fue encontrar la ruta de costo mínimo en la array . Le dije el enfoque usando BFS y finalmente lo resolví usando recursividad con memorización. Luego me pidió que escribiera mi enfoque en un papel. Estaba muy impresionado con mi desempeño en esta ronda.

Round3(Bar-raiser):
Tiempo: 60 minutos
El entrevistador era el gerente y jefe del panelista. Me pidió que me presentara, cuál es mi tema favorito. Me preguntó qué pregunta había resuelto que me resultó difícil y cuáles fueron los problemas que surgieron al abordar esa pregunta. Luego pasó a las preguntas.
A una pregunta se le dio un árbol n-ario, para cada k-ésimo nivel del árbol, imprima el k-ésimo Node presente en ese nivel contando desde la izquierda y si el k-ésimo Node no está disponible, imprima el último Node en ese nivel. Le dije el enfoque obvio usando el recorrido de orden de nivel. Me pidió que escribiera un código para eso que cubre todos los casos de esquina.
Otra pregunta era comprar y vender acciones solo una vez. Luego cambió la pregunta acomprando y vendiendo varias veces para maximizar el beneficio final. Siguió confundiéndome al modificar las restricciones del problema. Luego, finalmente aceptó mi solución y me pidió que ejecutara en seco ese código.

Ronda 4 (cara a cara):
Tiempo: 1,5 horas
Esta ronda se basó principalmente en la resolución de problemas y varios temas de CS como OS, DBMS, OOP, etc. Comenzó la ronda pidiéndome que presentara mi proyecto, que era un aplicación de Android. Me preguntó sobre la idea central de la aplicación, su diseño, etc. Me preguntó qué había usado para almacenar información diversa en la base de datos y le dije que usaba MySQL con declaraciones de MySQL llamadas desde un script PHP utilizando el mecanismo de codificación de URL en Java. Me preguntó sobre las dificultades que enfrenté durante mi proyecto y cómo las había abordado. Luego pasó a las preguntas.
El enunciado de una pregunta era similar al problema del teclado móvil.Pero hubo una ligera variación en que también se proporcionó un diccionario de palabras junto con un número y tuve que encontrar todas las palabras que están presentes en un diccionario que se puede obtener presionando este número. Le dije el enfoque habitual usando retroceso. Me pidió que optimizara mi enfoque. Me dio una pista de que se podía hacer usando algunos espacios. Finalmente, llegué a la solución optimizada asignando letras individuales con dígitos a partir de los cuales se pueden generar presionando el dígito como presionar 2 puede generar letras a, b o c, así que asigne a, b y c con 2. Luego itere sobre cada palabra presentes en el diccionario para saber si es la posible solución o no.
La segunda pregunta fue encontrar el siguiente elemento más alto en una array para cada elemento.Le dije el de fuerza bruta de complejidad de tiempo O(n^2). Me pidió que optimizara eso. Lo probé usando BST pero no pasaba todos los casos de prueba. Luego, después de algunas sugerencias, finalmente llegué a la solución usando la pila.
Me pidió que diseñara una clase para el juego de tres en raya donde el tamaño del tablero dado es variable n. Me pidieron que implementara la función miembro findWin() comprobando todas las filas, columnas y diagonales para todos los 1 o todos los 0 para cualquier tamaño de array n.
Me hizo preguntas basadas en OOP como una clase abstracta, interfaz, sus diferencias, etc. y en el sistema operativo, me preguntó sobre mutex, semáforo, sus diferencias, etc. y describió el ciclo de vida del software en detalle. Finalmente, la ronda terminó.
9 estudiantes entraron en la 4ª ronda de los cuales 5 fueron seleccionados. yo era uno de ellos 🙂
Agradezco a GeeksforGeeks por ayudarme en mis preparativos.

Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *