Ronda 0: prueba de codificación en línea (90 min – 4 preguntas de codificación)
- Codificación de longitud de ejecución
Input : aaaaaabb Output : a5b2 Input :aaaaabccc Output :a5bc3
- Recuento de suma de pares de lista enlazada
Input : list = 0 -> 2 -> 5 -> 7 -> 4 -> 6 -> 10 -> 20 -> -10 -> Null Sum = 10 Output : 3 Explanation: (4, 6) (0, 10) (20, -10)
- Rotar lista doblemente enlazada por N tiempo
Input : NULL <= a =><= b =><= c =><= d =><= e =><= f =><= g =><= h => NULL Num = 4 Output : NULL <= e =><= f =><= g =><= h =><= a =><= b =><= c =><= d => NULL
- Dado el árbol binario, encuentra el nivel del Node x si x está presente; de lo contrario, devuelve 0.
GeeksforGeeks Link
Después de 1 mes, el reclutador pidió rondas f2f. Hubo 4 rondas en el mismo día.
Ronda 1: Ronda del gerente de contratación (comportamiento + diseño) (1,5 horas)
Introducción, proyecto y muchas preguntas de comportamiento
- Project Biggest Challenge y cómo lo resolviste? (Elija reciente y mejor)
- Cuéntame un momento en el que seas mentor de alguien.
- Cuéntame un momento en que tu jefe no estaba y tuviste que tomar alguna decisión importante.
- Cuéntame un momento en el que tengas que sumergirte profundamente en algo por tu cuenta.
Muchas otras preguntas de comportamiento. Finalmente dio un problema de diseño para resolver.
Diseño:
Realice la integración de la aplicación Splitwise con Amazon Pay (o Paytm)
1) donde una persona puede pagar a otra persona y el dinero se deposita directamente en la cuenta bancaria de otra persona.
2) Una persona también puede enviar un recordatorio a otra persona por poseer dinero.
Ronda 2: Ronda de diseño (1,5 horas)
- Discusión detallada sobre el proyecto y el diseño del mismo, cómo escalará su proyecto para admitir un número n de usuarios. La atención se centró en la escalabilidad y el diseño distribuido.
- Diseñe un programador de trabajos, escalabilidad, tolerancia a fallas, alta disponibilidad, cómo el programador selecciona el trabajo,
cómo cuidará si un trabajo puede ejecutarse durante 30 minutos y otro durante 30 horas, cómo distribuirá los trabajos en los servidores.
Según la frecuencia y el tiempo, ¿cómo los ejecutará?
¿Cómo notificará al usuario sobre el inicio/detención o la finalización de un trabajo?
¿Cómo sabrá su sistema si un trabajo se cancela o finaliza por razones desconocidas?
Ronda 3: Ronda de codificación (1,5 horas)
- Array dada y una lista enlazada donde los elementos serán de la array pero también se pueden duplicar.
Ordene la lista vinculada en el orden en que aparecen los elementos en la array. Se esperaba una complejidad O(n). Se esperaba un código de ejecución completo en papel. Se esperaban todas las comprobaciones de las condiciones de contorno.Input : arr = {5, 1, 3, 2, 8} list = 3 -> 2 -> 5 -> 8 -> 5 -> 2 -> 1 -> X Output : 5 5 1 3 2 2 8
Ronda 4: Ronda de codificación (1,5 horas)
- Dado un árbol n-ario, básicamente un gráfico pero conectado y no contiene ciclo.
cada borde recibe un peso, identifica todos los caminos desde todos los vértices a todos los vértices y luego suma todos los caminos.
Da el resultado final como la suma de todos los caminos.Ex: 10 20 A-------B--------E 30/ \40 \ 50 / \ \ C D F Here all paths and their sum are as follows: Ans should be sum of all of them. A-B = 10 A-E = (10+20) A-F = (10+50) A-C = 30 A-D = 40 B-E = 20 B-F = 50 B-C = (10+30) B-D = (10+40) C-D = (30+40) C-E = (30+10+20) C-F = (30+10+50) D-E = (40+10+20) D-F = (40+10+50) E-F = (20+50)
Primero escriba la estructura de datos para resolver este problema, luego el algoritmo eficiente, luego complete el código de trabajo en papel.
En general, fue una experiencia positiva, el reclutador me mantuvo informado sobre el progreso y las próximas rondas. Las primeras cuatro rondas fueron bien, pero no pude resolver el problema de la quinta ronda y fui eliminado después de eso.
Muchas gracias a geeks for geeks por tener una colección tan grande para practicar.
Consejo:
- Prepárese también para las preguntas de comportamiento. Tenga uno o dos ejemplos listos para todas las preguntas. La mayoría de ellos están disponibles aquí: http://kraftshala.com/how-to-raise-the-bar-in-the-amazon-interview/
- Prepárese seriamente para las rondas de diseño, buscan escalabilidad, alta disponibilidad y arquitectura de sistema distribuido en su diseño.
- Para la codificación, prepare sus conceptos básicos y manténgalos completos, practique el uso de lápiz y papel para escribir código.
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