Hola, recientemente pasé por el proceso de entrevista en Amazon. En abril, un reclutador de Naukri.com se comunicó conmigo con respecto al puesto de SDE1 en Amazon.
Cronología: El proceso completo tomó alrededor de 1,5 meses.
Evaluación en línea: Plataforma: HackerRank. 2 Preguntas de dificultad media a resolver en 60 minutos. Tuve que escribir el código, así como explicar el enfoque, cómo se me ocurrió la solución y mencionar la complejidad de tiempo y espacio de los problemas.
- Dada una array, devuelve el índice del par en la array cuya suma es K. Si hay más de un par, devuelve el índice del par que tiene el elemento individual más grande. Similar a https://www.geeksforgeeks.org/given-an-array-a-and-a-number-x-check-for-pair-in-a-with-sum-as-x/
- Un libro está representado por una string binaria que tiene dos tipos de páginas, ‘0’ es una página ordinaria y ‘1’ es una página marcada. Encuentre el número de formas de seleccionar 3 páginas en orden de índice ascendente de modo que no haya dos páginas adyacentes del mismo tipo.
También hubo algunas preguntas de comportamiento. Y algunas preguntas de MCQ sobre Workstyle.
Esta ronda salió bien. Pude resolver todas las preguntas en el tiempo dado. Una semana después, recibí una llamada de Recursos Humanos que decía que mi evaluación en línea salió bien. Y seguirán adelante con las próximas rondas. Ella me dijo que habrá 3 rondas más. 2 rondas técnicas y 1 ronda BarRaiser (esta es una ronda decisiva).
Mis dos rondas técnicas estaban programadas para el 20 de abril.
Ronda Técnica 1: Esta ronda duró 70 minutos. El entrevistador se presentó y preguntó un poco sobre mí y luego saltó directamente a las preguntas.
- Primera pregunta: https://www.geeksforgeeks.org/maximum-width-of-a-binary-tree-with-null-value/
- Me preguntó sobre mi enfoque y la complejidad del tiempo y luego me pidió que lo implementara. Pude escribir código para él con todos los casos cubiertos.
- Segunda pregunta: averigüe si es posible finalizar todas las tareas o no desde las dependencias dadas
- Ya había practicado esta pregunta. Lo resolví usando DFS. Mantuve dos arrays visitadas. Le expliqué el enfoque y luego me pidió que codificara.
Pude codificar ambas preguntas en el tiempo dado y el entrevistador quedó impresionado. Luego me preguntó si tenía alguna pregunta.
Ronda Técnica 2: Esta ronda ocurrió el mismo día. Continuó durante una hora. El entrevistador se presentó y preguntó un poco sobre mí y luego saltó directamente a las preguntas. Esta ronda tenía una pregunta de codificación + una pregunta de comportamiento basada en el principio de Liderazgo de Amazon.
- Primera pregunta: naranjas podridas.
- Le expliqué el enfoque basado en BFS usando una cola. Me preguntó cómo me aseguraría de que todas las naranjas frescas se hayan podrido y no queden naranjas frescas. Le dije que después del BFS podríamos revisar la array y ver si hay alguna disponible. Luego me pidió que lo revisara sin hacer este recorrido adicional (como ya estamos haciendo un recorrido para empujar todas las primeras instancias de 2 (naranjas podridas) en la cola). Le dije que mantendríamos una variable one_count y durante el primer recorrido, buscaríamos 1 e incrementaríamos el contador. Y cada vez que presionemos un ‘1’ para hacer cola para BFS, disminuiremos el one_count. Ahora, después de que termine el BFS, verificaremos si one_count == 0, lo que significa que no queda naranja fresca. Estaba contento con mi solución. Me pidió que escribiera un código de trabajo completo y pude codificarlo.
- Segunda pregunta: Hábleme de un momento en que se sintió desafiado en el trabajo. ¿Cómo manejaste el desafío?
- Debe responder a esta pregunta de liderazgo teniendo en cuenta el método STAR. Tuve una experiencia similar en mi empresa actual, así que pude explicarlo.
Luego me preguntó si tenía alguna pregunta. Luego le pregunté sobre su rol actual y los proyectos en los que está trabajando.
El reclutador me llamó 2 días después y me dijo que había superado ambas rondas y que tendrán una ronda más llamada ronda BARRAISER , que es la ronda decisiva. Le pregunté cuándo podemos tener la última ronda y me dijo que no sabe cuándo podemos tener la ronda final ya que conseguir espacios para la ronda Barraiser es muy difícil. Me dijo que me actualizará 3 o 4 días antes de la entrevista.
Hasta aquí, el proceso de la entrevista iba bien. Pero a partir de aquí, el proceso comenzó a ordenarse.
Esperé dos semanas y no hubo respuesta del Reclutador. La llamé 2 o 3 veces para preguntarle si había alguna actualización, pero no hubo respuesta de su parte. Entonces, de repente, el 8 de mayo a la medianoche (alrededor de las 12:30 a. m.), recibí un correo electrónico del reclutador que decía que tenía mi ronda final hoy a las 2:00 p. m. Yo estaba dormido en ese momento. Me desperté a la mañana siguiente alrededor de las 10:00 am y vi el correo. Solo tenía 4 horas hasta mi entrevista final. Llamé al reclutador para ver si se puede reprogramar ya que no estaba libre ese día. Tenía una reunión a la misma hora. Pero el reclutador me dijo que la entrevista no se puede reprogramar. De alguna manera me las arreglé y di la entrevista ese día a las 2:00 PM.
BARRISTER ROUND: El entrevistador se presentó y preguntó un poco sobre mí y luego saltó directamente a las preguntas. Esta ronda se basó principalmente en Amazon LP. También tenía una pregunta de codificación.
La entrevista comenzó con preguntas de Liderazgo.
Preguntas de liderazgo
- Hábleme de un momento en que asumió un riesgo calculado.
- Háblame de un momento en el que hiciste todo lo posible para cumplir con las expectativas de los clientes.
- Háblame de un momento en que hiciste algo de lo que estás orgulloso. (Profesional)
- Dime la cosa más genial que has hecho.
- Háblame de un momento en el que tuviste que reaccionar rápidamente ante un problema. ¿Cuál fue el resultado?
Profundizó en todas las preguntas y siguió haciendo preguntas de seguimiento.
PD: siempre trata de usar escenarios de la vida real para este tipo de preguntas.
Pregunta de codificación
- Máximo de ventana deslizante (Máximo de todos los subarreglos de tamaño k)
- Primero le conté sobre el enfoque de fuerza bruta de O(n 2 ). Luego me pidió que lo optimizara.
- Luego le dije el enfoque de usar max_heap, le dije que almacenaríamos el índice y el elemento de array en max_heap. Primero insertaremos k elementos en max_heap y agregaremos la parte superior de max_heap a nuestro vector de resultados. Y si la parte superior de maxheap no se encuentra en el rango de I -> ik, sacaremos el elemento; de lo contrario, lo mantendremos en max_heap.
C++
vector<int> max_of_subarrays(vector<int> arr, int n, int k) { priority_queue<pair<int, int>> pq; for(int i = 0; i < k; i++){ pq.push({arr[i], i}); } vector<int> ans; ans.push_back(pq.top().first); for(int i = k ; i < arr.size(); i++){ pq.push({arr[i], i}); while(pq.top().second <= (i - k)){ pq.pop(); } ans.push_back(pq.top().first); } return ans; }
Me pidió que explicara el enfoque completo y preguntó por la complejidad del tiempo. Les dije que es O (log) ya que el tamaño del almacenamiento dinámico en cualquier momento no puede ser mayor que K. No parecía satisfecho con la solución. Luego me pidió que lo implementara. Pude escribir el código y él ejecutó el código en seco en muchos casos. Estaba funcionando bien. Pasó más de una hora cuando terminó de comprobar el código. Todavía no se veía completamente satisfecho. Probablemente estaba buscando una solución más optimizada, pero ya se nos estaba acabando el tiempo. Terminó la sesión. Conocía la solución en tiempo lineal de este problema usando deque, pero no me vino a la mente durante la entrevista. Probablemente estaba buscando un enfoque basado en la eliminación de la cola, pero no pude pensar en eso. Lo mejor que pensé fue el enfoque basado en montón de nlogk.
Estaba decepcionado después de esta ronda como sabía. Había bombardeado mi entrevista. La última ronda ocurrió de repente, y no pude repasar ningún concepto /ds/algo. Apenas tengo 4 horas para estudiar. Esta fue la primera vez que estaba entrevistando para Amazon. Yo también estaba muy nervioso. En cualquier día podría haber resuelto esto usando deque pero el día de la entrevista lamentablemente no pude.
Llamé a Recursos Humanos ese día y le dije que había dado la entrevista, me pidió que esperara una semana y luego me actualizaría.
Pasaron 2 semanas y no recibí ninguna actualización de recursos humanos. Después de 2 semanas, la llamé y me dijo que los comentarios de sus dos primeras rondas fueron excelentes, pero que no pudo borrar la ronda BARRAISER . La entrevista con Barrister tiene poder de veto. Si él / ella dice que no, eso significa que es un NO. Como no pude completar la ronda final, no avanzarán con mi solicitud.
Yo estaba muy desanimado después de la llamada.
VEREDICTO: Rechazado
Consejos: Esté siempre preparado para lo peor mientras realiza el proceso de entrevista de Amazon. Nunca sabes lo que te va a golpear. A veces se espera que usted dé la ronda decisiva de entrevistas con un aviso corto de 4 horas.
Y el Principio de Liderazgo es imprescindible.
Todo lo mejor para todos los que se están preparando para Amazon. Lo intentaré de nuevo después de 6 meses.
Publicación traducida automáticamente
Artículo escrito por danish_nitdgp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA