Experiencia de entrevista de Amazon para SDE2 – Part 2

La ronda 1:

Había alrededor de 30 a 40 personas en esta ronda, a todos nos dieron un cuestionario y hojas. Hubo tres preguntas de algoritmo y tuvimos que escribir el código sintácticamente correcto en una hora. A continuación se muestra la pregunta.

1. Imprima la vista izquierda del árbol binario.

2. Encuentre dos Nodes cuya suma sea igual a dos sumas dadas en un árbol de búsqueda binaria en O(n) tiempo y O(log n) espacio adicional.

3. Encuentre k números con la mayoría de las ocurrencias en la array dada
Ronda 2:

Esta fue una discusión cara a cara centrada en el diseño de algoritmos.

  1. Dado un mapa con carreteras, todas las carreteras del mapa son líneas rectas. Estos caminos pueden cruzarse entre sí en cualquier ángulo. Calcule el total de caminos distintos en el mapa. Estaba esperando ver cómo represento el mapa como estructura de datos, hacer preguntas sobre cualquier ambigüedad e idear un algoritmo y luego codificar la solución en papel. Pude dar una solución optimizada en el primer intento. Básicamente, utilicé una array bidimensional para representar el mapa. La array tendrá solo 0 o 1 como elementos. La secuencia continua de 1 representará una carretera. Realice una primera búsqueda en profundidad en esta array para encontrar el número total de 1 continuos. La parte difícil fue determinar las carreteras en caso de que encontremos una intersección.
  2. Imprima una array en orden espiral. Se esperaba un código sintácticamente correcto en papel. 

Ronda 3:

Esta fue la ronda de diseño. Esta ronda se prolongó durante aproximadamente una hora y media.

  1. Preguntado sobre mi proyecto actual, su diseño y arquitectura. Luego me pidió que dibujara la arquitectura de mi proyecto en una pizarra blanca y me hizo una pregunta específica sobre qué componente del sistema hacía qué y cómo se implementaba.
  2. Diseño orientado a objetos de un estacionamiento. Le di un diseño e hice uso del patrón del método de Plantilla, el patrón de Estrategia y el patrón de Fábrica Abstracta. Me hicieron una contrapregunta sobre mis opciones y sus ventajas y desventajas. Esté preparado para las preguntas sobre los pros y los contras de las elecciones que haga, y también me dio algunos cambios en mi diseño y me preguntó si era una buena idea o no. Luego preguntó cómo se implementaría este sistema en los estacionamientos.

Ronda 4:

Esto nuevamente se centró en el diseño de algoritmos.

  1. Dado un archivo de registro en el siguiente formato.

[19-10-2019:10:20:22] <algunos registros>
[19-10-2019:10:20:23] <algunos registros>
[19-10-2019:10:20:24] Uso de memoria = 10 MB
[19-10-2019:10:20:25] <algunos registros>
[19-10-2019:10:20:26] <algunos registros>
[19-10-2019:10:20:27] < algunos registros>
[19-10-2019:10:20:28] Uso de memoria = 18 MB
[19-10-2019:10:20:29] <algunos registros>
[19-10-2019:10:20:30 ] Uso de memoria = 22 MB
[19-10-2019:11:20:31] <algunos registros>
[19-10-2019:11:20:32] Uso de memoria = 10 MB

Hay registros de uso de memoria presentes en el archivo de registro. Como en el ejemplo anterior, los registros de uso de memoria son 10, 18, 22, 10. La pregunta era encontrar el aumento máximo que se ha producido en el uso de memoria. En el ejemplo anterior, el aumento máximo que ha ocurrido es 12, comenzando desde 10 MB y terminando en 22 MB.

2. Hay dos repositorios de código fuente app01 y app02 que se implementan a las 7 p. m. en producción todos los días. A continuación, se le proporciona la función para implementar el código de app01 y app02 en producción hasta una identificación de confirmación determinada.

implementación booleana (int commitId_app01, int commitId_app02)

si llamamos a deployment(10, 12), entonces cada confirmación de id 1 a 10 de app01 y cada confirmación de 1 a 12 de app02 se implementará en producción y la función devolverá verdadero si la implementación es exitosa o falso si la implementación falló.

Se realiza una implementación (es decir, deployment(n, m)) y la implementación falló debido a una confirmación defectuosa. Debe escribir un algoritmo para encontrar la confirmación defectuosa utilizando el método de implementación en el menor número de implementaciones.

3. Dado un conjunto de números enteros, encuentre un subconjunto con la suma dada. Problema de suma de subconjuntos
Ronda 5:

Esta fue la ronda de gerentes de contratación. Primero se presentó y luego explicó el proyecto para el que está contratando y otros detalles sobre la empresa.

  1. Cuéntame algo sobre ti que no esté en tu currículum.
  2. Explique la arquitectura y el diseño de su proyecto actual. Luego hice contrapreguntas sobre el diseño de mi proyecto y por qué estábamos haciendo las cosas de una manera y no de la otra. También me preguntaron sobre las limitaciones y los problemas que existen en la arquitectura y el diseño de mi proyecto y qué se puede hacer para resolverlos.
  3. Me preguntaron por qué estábamos usando una herramienta de terceros en mi proyecto actual en lugar de desarrollar una por nosotros mismos.
  4. Cuando se me preguntó sobre el trabajo reciente que hice en mi empresa (recientemente trabajé en la integración de la puerta de enlace API con los servicios de descanso). Se le preguntó qué cambio tendría que hacer para exponer los servicios web y la interfaz de usuario al público en Internet. Le expliqué los problemas de seguridad que podrían surgir al exponer al público y cómo podemos manejar eso. También se explicó acerca del manejo de alto tráfico mediante la limitación de velocidad de API y la limitación de velocidad distribuida. Luego preguntó cómo podemos implementarlo.
  5. Me preguntó si tenía alguna pregunta.

Ronda 6:

Ronda de ingenieros principales. Centrado principalmente en el diseño del trabajo que he realizado hasta ahora y el diseño de algoritmos.

  1. Una breve introducción sobre el entrevistador, su experiencia y los proyectos en los que ha trabajado.
  2. ¿Cuál es el proyecto más difícil en el que has trabajado? ¿Por qué fue difícil? ¿Qué hiciste para resolver el problema? ¿Cómo lo diseñaste? ¿Qué elecciones hiciste y por qué?
  3. Me dio un problema de diseño de algoritmo único y me pidió que le enviara la solución por correo con todos los casos de prueba en 30 minutos. Encuentre el número total de vueltas en la ruta entre dos Nodes en un árbol binario. Se le dan dos Nodes que necesita para encontrar la ruta entre estos dos Nodes en el árbol binario y calcular el número de vueltas en la ruta. Por ejemplo, considere un árbol binario donde ‘a’ es el Node raíz y ‘b’ y ‘c’ son los hijos izquierdo y derecho de ‘a’, también ‘d’ es el hijo derecho de b. El número de vueltas en el camino de ‘d’ a ‘c’ es 2 . El número de vueltas de b a c es 1 y el número de vueltas de a a c es 0.

Después de unos días recibí una llamada de recursos humanos que me seleccionaron, en unos días también me enviaron una oferta que era más de lo que esperaba.

Puntas:

  1. No se trata solo de resolver el problema, se trata de resolverlo rápidamente, así que practica tanto como puedas.
  2. No se trata solo de resolver el problema, también es muy importante cómo abordas el problema. Así que piensa en voz alta. Hágale saber al entrevistador cómo está abordando el problema. También ayudará al entrevistador a darle pistas.
  3. Esté siempre atento a la ambigüedad en el enunciado del problema y siga haciendo preguntas al respecto. Las ambigüedades se introducen deliberadamente en la pregunta para verificar si puede encontrar la ambigüedad y hacer preguntas de aclaración.
  4. Tome las indirectas. Los entrevistadores siempre son útiles y te darán consejos útiles y precisos si te quedas atascado. Es importante captar la pista lo más rápido posible y proceder con la solución. si no puede captar la pista, es una gran bandera roja.
  5. Nunca digas que no puedes hacerlo. Incluso si hay un problema que no ha resuelto antes o parece que no puede resolverlo, siga atacando el problema desde diferentes ángulos, el entrevistador le dará pistas. Pero si dices que no puedes resolver el problema, es una gran señal de alerta y podrías terminar siendo rechazado.

Un gran agradecimiento a geeksforgeeks por toda la preparación de la entrevista :).

Publicación traducida automáticamente

Artículo escrito por MD.ZULFIQUIAR ALI Khan 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 *