Recientemente me entrevisté con Amazon para el puesto de SDE1 en su equipo TRMS. El procedimiento de la entrevista fue inimaginablemente riguroso.
Aquí están los detalles
Ronda 0: Ronda Escrita
Interviewstreet Test – 2 preguntas para hacer en 2 horas
P1 : Calcula la expresión (2+3)*5… La pregunta acaba de decir esto… Supongo que tuvimos que hacer nuestras propias suposiciones para resolver el problema
por ejemplo
——4
—-2—6
–1–3–5–7
y
——4
—-6—2
–1–3–7–5
son isomorfos… los árboles son similares y algunos Nodes tienen sus hijos izquierdo y derecho intercambiados…
Dados dos árboles determina si son isomorfos…
La gente de la calle de la entrevista marcó que la solución a mi primera pregunta era incorrecta, incluso cuando funcionó bien. Cuando le conté a Recursos Humanos sobre la situación, ella lo verificó con algunos de los muchachos de Amazon y estaban de acuerdo con eso.
Aprobé la prueba escrita.
Entrevista Telefónica 1
P1 : Encuentre el K-ésimo entero más grande en un árbol de búsqueda binaria . Cuando le dije la solución como la dada en geeks para geeks, me pidió que lo hiciera usando recursividad.
P2 : dada una array de enteros positivos, encuentre el número máximo que se puede formar mediante cualquier permutación de la disposición . Le dije una lógica. Luego me pidió que escribiera solo la función de comparación para elegir un número antes del otro.
Cuando le di a la entrevistadora respuestas directas, ella tergiversó más la pregunta. Probablemente querían ver cómo pienso y enfoco un problema.
Entrevista Telefónica 2
P2 : Identifique todos los tripletes pitagóricos en la array dada.
Despejé esta ronda. El departamento de recursos humanos me dijo que tenía que ir a Bangalore para entrevistas en persona. (todos los arreglos de viaje fueron hechos por Amazon mismo)
Entrevista personal 1
P1 : Encuentre la suma de un subarreglo continuo dentro de un arreglo unidimensional de números que tenga la suma más grande . mi forma de acercarme e hizo ayudar un poco
P2 : ¿Cuál es la mejor forma de implementar colas mediante pilas ? ¿Cuál sería la complejidad del tiempo?
fue capaz de hacer esto rápidamente.
Entrevista personal 2
P1: busque caracteres no únicos en una string determinada. Le dije un enfoque O (n ^ 2) [fuerza bruta], uno O (n logn) [ordenar y luego comparar elementos adyacentes] y uno O (n) [almacenar el recuento de caracteres en una array]. Luego me pidió que lo hiciera en O(n) sin usar array.
Despistada, finalmente me dijo que quería que usara BIT Vector. No estaba bien conversar con Bit Vectores y se lo dije… Ella todavía me pidió que pensara más. Finalmente me dijo una solución usando lo mismo que era imposible pensar solo en la entrevista, especialmente cuando uno no sabía qué eran los Vectores BIT. Estuvo de acuerdo cuando expuse el punto y aceptó mi solución O(n) anterior y pasamos a la siguiente pregunta.
Aquí, cuando le di una solución O(n) [encontrar el producto y dividirlo con el elemento actual para obtener el número de esta posición de índice], me pidió que lo hiciera sin el operador de división. Le dio una solución O(n^2). Pero no podía pensar mejor. Finalmente, justo cuando ella comenzó a decirme un enfoque O(n), recordé la solución geeksforgeeks al problema y se la di. Probablemente ella no lo consideró. (no estoy seguro)
Entrevista personal 3
Esta entrevista fue con el gerente de contratación de Amazon. Primero me hizo un par de preguntas de recursos humanos como ¿Por qué Amazon? Porque deberíamos contratarte? Proyectos, pasantías, etc..? ¿Cómo manejarías un desacuerdo con tus compañeros de equipo? Etcétera etcétera …
Luego me hizo una pregunta de programación.
P : Dibujó un círculo en la pizarra y marcó algunos puntos en él. Los nombró X1, X2, X3 ..
Luego dijo que estas son estaciones de servicio, y usted tiene que encontrar la estación de servicio correcta desde donde un automóvil debe comenzar a dar vueltas en el círculo para que nunca se quede sin gasolina antes de completar una ronda. Luego se sentó en la mesa.
(Lo siento, pero tendré que describirlo en detalle para decirles cómo me lo plantearon… y fuera de curso para aclarar la pregunta en sí…)
Sin saber qué tenía que hacer exactamente y qué información estaba disponible, le hice algunas preguntas.
¿Por qué el automóvil se quedará sin gasolina después de cargar combustible en, digamos, la primera estación de servicio?
Dijo que cada gasolinera tiene una cantidad limitada de gasolina (digamos X1) y que después de repostar desde esta estación puede quedarse sin gasolina incluso antes de llegar a la siguiente (cualquier cosa podría pasar, puede cruzar la próxima gasolinera pero correr salir más tarde antes de completar la ronda ..). Así que tengo que encontrar una estación de servicio desde la cual el automóvil debe comenzar el circuito de tal manera que nunca se quede sin gasolina antes de completar el ciclo.
Entonces, ¿puede el automóvil repostar en la próxima estación de servicio disponible, si es capaz de compensarlo?
Sí
¿Tenemos la información sobre la cantidad de gas necesaria para llegar de una bomba de gasolina a otra?
Sí
Supuse que el tanque del automóvil era lo suficientemente grande como para llenar la mayor cantidad de gasolina posible.
Y luego dibujé dos arrays, una con la cantidad de gasolina que tenía cada estación y otra con la cantidad de gasolina necesaria para ir de esta estación a la siguiente…
Combustible disponible: X1, X2, X3, X4, X5
Combustible necesario para llegar a la siguiente estación: Y1, Y2, Y3, Y4, Y5
Dijo que estaba bien y me pidió que siguiera adelante.
Luego tomé la diferencia (Y1-X1), (Y2-X2)… y la almacené en una array… y de repente me di cuenta de que esto se convirtió en un simple problema de encontrar la suma máxima de un subarreglo continuo dentro de una array. (circular). Le gustó mi enfoque y me pidió que lo programara. Lo hice y le mostré una ejecución en seco del código que había escrito. Él estaba bien con eso.
(Me sentí bien después de la entrevista porque ahí no me tropecé para nada..)
Entrevista personal 4
P1: Tenemos un archivo enorme con llaves ‘()’ [solo un tipo…] Averigüe si están balanceadas… (las pilas no funcionarían aquí porque probablemente se quedará sin memoria almacenando la pila…) Cuando le dio otra solución, me pidió que lo hiciera usando procesos paralelos. Le dije que elaborara más… (para ser honesto, no estaba familiarizado con los procesos paralelos)… Finalmente se lo dije… y me pidió que lo pensara todavía…
Lo discutimos durante unos 20 minutos. Sin llegar a ninguna parte, pasó a hacerme la siguiente pregunta.
P2 : encuentre la substring más pequeña que contiene todos los caracteres de la string principal. Nuevamente, no tengo una solución para esto. Le di un enfoque O(n^2). Me pidió que pensara más porque la forma en que lo estaba abordando era la forma de hacerlo y puedo hacer uso de la última subsolución obtenida para mejorar mi complejidad. No se me ocurrió nada, finalmente pasamos a la tercera pregunta.
P3 : dado el numerador y el denominador de una fracción, encuentre el cociente y el resto sin usar los operadores de división y mod (‘/’, ‘%’). Esto fue sencillo. Lo hice. Luego me pidió que escribiera el invariante de mi solución, que era denominador*cociente + resto = numerador.
Luego me pidió que pensara en los casos en los que el numerador y el denominador, o ambos, eran negativos. Casi se nos acabó el tiempo así que no me dio tiempo a pensar y concluyó la entrevista. Quería que escribiera un invariante que fuera verdadero independientemente de la entrada. Ahora que lo pienso, debería haber dicho |denominador|*cociente + resto = |numerador|
Voló de regreso a casa en la noche.
2 días después, el departamento de recursos humanos me informó que no logré entrar. 🙁
Esta fue probablemente la más difícil de todas las entrevistas que he tenido.
Espero que ayude a algunos de ustedes ..
Gracias a ganglu por compartir la experiencia de Amazon Interview. 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