Solicité la pasantía de 6 meses a través de referencia a fines de noviembre. Pensé que si presentas la solicitud a través de una referencia, tarda solo 1 o 2 días en recibir una respuesta de Recursos Humanos, pero después de 2 o 3 días, cuando nadie me contactó, pensé que no volvería a saber de ellos. Pero después de dos semanas, recibí el correo sobre la ronda de codificación en línea.
Ronda 1: Ronda de codificación en línea
Hubo 2 preguntas de codificación y 28 MCQ.
- Conversión de infijo a sufijo
- Problema de manipulación de strings muy fácil
Pude resolver ambos.
Después de dos días, me dijeron sobre la entrevista en el sitio y que tenía que ir a la oficina de Amazon Bangalore.
El día de la entrevista fui a la oficina. Había alrededor de 70-80 otros estudiantes.
Ronda 2: Entrevista técnica
Esta fue una ronda de 60 minutos y se hicieron 2 preguntas de codificación. Resolví uno completamente y otro parcialmente. Mi entrevistador fue genial y amable. Aunque no sonreía mucho, me hizo sentir como si estuviéramos discutiendo sobre la pregunta. Comenzó con la pregunta habitual Acerca de usted y luego saltó directamente a las preguntas de codificación.
Q1. Está en la escalera del suelo y tiene que llegar a la escalera ‘Nth’. En cualquier escalera, puede tomar como máximo pasos ‘K’. Encuentre el número total de formas en que puede llegar al N-ésimo escalón. int contarVías(int N, int K)
Me explicó la pregunta y luego la explicó a través de un caso de prueba de muestra. Y luego me pidió que primero explicara el enfoque y si él está satisfecho con el enfoque, solo yo puedo codificar. Me dijo que también anotará cosas en su computadora portátil.
En primer lugar, le di la solución de fuerza bruta recursiva (porque eso es lo que dice CTCI). Luego me pidió que lo optimizara. Luego le di el enfoque DP con complejidad de tiempo O(N*K) y complejidad de espacio O(N). Luego me pidió que lo optimizara aún más. Usé otra variable para almacenar la suma de los últimos K escalones y aumentar su valor para el i-ésimo escalón y disminuirlo para el (ik)-ésimo escalón. Ahora mi complejidad de tiempo era O(N) y la complejidad de espacio era O(N). Pensé que ahora puedo codificar, pero nuevamente me pidió que optimizara el espacio. Luego le di la solución de cola espacial O(K). Ahora estaba satisfecho con el enfoque y me pidió que lo codificara. Nuevamente me explicó lo que esperaba mientras escribía el código. (Nombre de variable legible, modular, con sangría y significativo). Luego escribí el código, lo revisó y quedó satisfecho.
Q2. String más pequeña con intercambios: http://https//leetcode.com/problems/smallest-string-with-swaps/
Fue difícil para mí encontrar la solución de fuerza bruta y se lo dije. Luego me dio algunas pistas y, con su ayuda, se me ocurrió una solución de fuerza bruta. Después de eso, tuvimos una discusión sobre si la solución de fuerza bruta siempre dará la solución correcta. Después de eso, me pidió que lo optimizara, lo cual estaba intentando, pero me dijo que se había acabado el tiempo y que si tenía alguna pregunta. Solo le pregunté sobre el papel del pasante y qué equipo lo está contratando.
Después de 15 minutos, me dijeron que paso a la siguiente ronda.
Ronda 3: Entrevista técnica
También fue una ronda de 60 minutos y se hicieron 3 preguntas de codificación. Primero, me pidió que hiciera una breve introducción. Luego me preguntó sobre mis prácticas y mis proyectos. Luego me dijo lo que espera de mí en esta ronda. Me dijo que hará 2-3 preguntas, dependiendo del tiempo, y necesito explicarle primero la lógica y luego el código. Además, siga buenas prácticas de codificación. Me dijo que no podría sobrescribir el código y que escribiría el código exacto en su máquina (no estoy seguro de si realmente lo hizo, pero estaba escribiendo algo en su computadora portátil).
Q1. Problema de atrapamiento de agua de lluvia
En primer lugar, le di la solución de fuerza bruta O(N^2). Me dijo que lo optimizara. Luego le dio el enfoque de array leftMax y rightMax. Dijo que ahora puedo codificar. Mientras escribía el código, me aseguré de mantenerlo limpio, lo hice lo más modular posible, usé el nombre de variable descriptivo. Miró mi código, me hizo algunas preguntas y luego pasó a la segunda pregunta.
Q2. https://www.geeksforgeeks.org/dynamic-programming-building-bridges/ Como ya hice esta pregunta, le dije que solo necesito encontrar el LIS en la array. Me dijo cómo lo haría. Le di un enfoque O (N ^ 2). Dijo que está bien y me pidió que codificara.
Q3. Era una pregunta fácil. Me preguntó que hay una tierra y que hay un lago adentro. Necesito encontrar el tamaño del lago. Le dije que puedo usar 1 para tierra, 0 para agua y luego aplicar DFS cuando encuentre cualquier 0. Luego hizo preguntas sobre DFS y cómo lo haré. Le expliqué mi enfoque y luego me pidió que escribiera el pseudocódigo para ello.
Luego me preguntó si tenía alguna pregunta. Le hice algunas preguntas.
Luego, después de unos 20 minutos, Recursos Humanos lo llamó y me felicitó.
Consejos para la entrevista
- No importa cuánto tiempo quede, asegúrese de que su código siga las buenas prácticas. Recuerdo un momento en el que pensé que escribiría el código súper rápido y luego le explicaría el código, pero no funciona así. Guardarán el papel donde escribiste el código y luego lo revisarán en caso de que tengan alguna duda contigo. Así que asegúrese de que lo que escribe sea claramente comprensible. Su código, su lógica, su diagrama, sus casos de prueba.
- Asegúrese de tener discusiones y no una entrevista. Asegúrese de explicar su enfoque y sus respuestas a sus preguntas de una manera que parezca una discusión. ¿Cómo? Explique las cosas como si supiera las cosas, no solo adivine, explique por qué está pensando en una solución recursiva.
- Busque siempre en Internet las respuestas a sus preguntas. El próximo entrevistador podría preguntarte.
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