Recientemente, tuve la oportunidad de ser entrevistado por Amazon en el campus de Bangalore, a través de una recomendación.
Tenía 8 meses de experiencia en una empresa basada en productos y 5 meses de pasantía.
1ra Ronda Telefónica:
Eran dos chicos, comenzaron con una presentación formal.
Pregunta 1: Dada una array y un número, diga «Num1». Encuentre dos números cuya suma sea igual al número dado «Num1».
Le dije primero la solución de fuerza bruta y luego me preguntó la complejidad del tiempo y le dije O (n ^ 2).
Luego me pidió que optimizara la solución y le di una solución O (nlogn) usando la clasificación.
Y por fin le dije la solución O(n) usando Hashing.
Pregunta 2: Dada una serie de precios de acciones. Determine la ganancia máxima que se puede obtener comprando y vendiendo acciones (similar al problema de la extensión de la pila).
Le dije la solución de fuerza bruta de O (n ^ 2) y luego me preguntó si podía dar una solución optimizada.
Le dije que la solución O(n) usaba la pila, pero el código se atascó en algunos de los casos de prueba y me pidió que modificara el código, pero no pude porque se estaban quedando sin tiempo.
Me proporcionaron un enlace a Colabedit (una especie de documento compartido de Google) donde tenía que codificar. Se requería un código listo para producción.
Después de 2 días, recibí una llamada de Amazon diciendo que los comentarios eran positivos y me pidieron que fuera a una entrevista cara a cara en la oficina de Amazon.
F2F Ronda 1:
Comenzó con una breve introducción.
P1: Dada una array M*N. debe comenzar desde el Índice (0,0) y llegar al Índice (M-1, N-1) con la suma máxima, dada la restricción de que solo puede moverse hacia la derecha o hacia abajo, es decir, si está en el índice (i, j) , solo puede moverse al índice (i, j + 1) o al índice (i + 1, j)
Le di una solución recursiva para esto y hubo mucha discusión sobre varios casos de prueba.
Me pidió que optimizara el código. Le di un enfoque de programación dinámica. Me preguntó si lo habías hecho antes y le dije que no, luego me pidió que lo codificara. No tenía ni idea del código porque no lo había hecho antes. luché para escribir el código correcto 2 o 3 veces y al final escribí el código correcto.
Luego me dijo que he terminado con la entrevista, ¿tiene alguna pregunta para mí y le hice dos preguntas?
Se requería un código listo para producción.
F2F Round2 :
Comenzó de nuevo con una breve introducción y una discusión sobre el proyecto.
P1: Una pregunta similar a LCA (Least Common Ancestor ) of Tree y di la respuesta de inmediato ya que entendí la pregunta y no pedí más aclaraciones.
P2: dados algunos recursos en forma de lista enlazada, debe cancelar todos los recursos cuya suma sea 0 (cero) y devolver la lista restante.
Le di la solución de inmediato, pero no pude manejar algunos de los casos de prueba de la esquina, luego me pidió que modificara el código en consecuencia.
Luego me pidió que escribiera todos los casos de prueba y lo hice.
Por ejemplo; dado los recursos como este:
caso 1: 6 -6 8 4 -12 9 8 -8 Debería devolver 9 ya que todos los demás se cancelan.
En el ejemplo anterior, se enumera lo que se cancela:
6 -6
8 4 -12
8 -8
o/p: 9
caso 2: 4 6 8 -9 10 -9
o/p: 4 6
caso 3: 4 6 -10 8 9 10 -19 10 -18 20 25
O/P : 20 25
F2F Round3:
comenzó con una presentación formal y, por cierto, era el mismo tipo que tomó mi entrevista telefónica.
P1) Me preguntó el problema de la suma de subconjuntos, es decir; Dada una array, encuentre la suma máxima del subarreglo contiguo.
Le di a O(n) una solución para encontrar la suma máxima inmediatamente después de que hizo la pregunta, ya que conocía la solución.
Luego me pidió que rastreara el código para algunos casos de prueba y pasó. Luego me pidió que encontrara el índice inicial y final del subarreglo y modifiqué el código e inicialmente me equivoqué, pero después de algunas modificaciones, obtuve el código correcto.
Q2) Suma de números representados por dos listas enlazadas.
Y le di la respuesta inmediatamente después de que terminó la pregunta. Pero le di la solución para sumar dos números de listas enlazadas comenzando desde el principio, pero me dijo que sumara los números como lo hacemos en la suma normal.
Y di esa solución invirtiendo la lista enlazada y luego agregando los números y finalmente invirtiendo la lista resultante.
Después de 2 o 3 días, recibí una llamada de Amazon que había limpiado las rondas y me pidieron que viniera a la ronda de gerentes de contratación.
Uno de los entrevistadores me dijo que había asaltado la respuesta porque di la respuesta inmediatamente después de que el entrevistador hiciera la pregunta, ya que más tarde me di cuenta de que era un gran revés para mí.
Entonces, uno de los consejos sería para todos ustedes que, aunque saben la respuesta, finjan que no saben. Haga alguna pregunta de aclaración, ya que también observan sus habilidades para resolver problemas con la codificación.
Hiring Manager Round F2F:
Comenzó con algunas preguntas básicas y luego preguntó por qué quiere dejar su empresa actual y luego preguntó el código de la serie Fibonacci.
Le expliqué la serie de Fibonacci y luego me pidió que la codificara.
Escribí el código y rastreé algunas entradas.
Luego tuvo una reunión cuando llegué tarde allí, así que me pidió que mejorara el código porque dijo que había un error en el código y lo hice.
Después de eso, me pidió que escribiera un código recursivo para él.
Luego me preguntó la complejidad temporal del código y le dije Exponencial.
Luego me pidió que lo probara.
Dije señor que podía hacerlo usando el Teorema Maestro o usando Inducción Matemática. Pero ahora mismo no recuerdo ninguno de ellos.
Luego me dijo que puedes hacerlo sin Master Theorem o MI. Luego, en mi mente, me llamó la atención el método del árbol de recurrencia, pero en ese momento tampoco tenía idea del método del árbol de recursión. Así que no pude decirle.
Esta ronda no fue positiva como supe justo después de mi entrevista. Fui eliminado después de esta ronda.
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.
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