Experiencia de entrevista de Amazon para SDE | Presencial 2019

Ronda 1: Ronda de evaluación en línea

La prueba en línea se realizó en la plataforma mettyl: 28 MCQ técnicos y 2 preguntas de codificación . La duración de la prueba fue de 90 minutos.

Las preguntas técnicas que recuerdo fueron:
1. Implementar la pila usando 2 colas y el empuje dado debe ser o (1) y una serie de operaciones de empuje y pop. ¿Cuál es el número de operaciones de encolado y desencolado realizadas?
2. int a = (b=6)+(c=8). ¿Cuál es el valor de a?
3. Hubo algunas preguntas relacionadas con la precedencia de los operadores.
Todas son preguntas relacionadas con C y C++. Si conoce los conceptos básicos de c y c ++, podrá resolver la mayor parte.
Preguntas de codificación
1. Dada una string con letras minúsculas, convierta la string al formato de URL adecuado teniendo en cuenta las diversas restricciones dadas. (como ru es siempre la extensión del dominio y algunas otras restricciones)

i/p -  ftpramgruindex 
o/p – ftp://ramg.ru/index

2. Dada la array 1D de tamaño k. Considérelo como una array 2D de m filas y n columnas (tal que m*n=k) y devuelva la suma de maxrow-sum y maximum-column sum.

i/p – [1, 2, 2, 3], 2 rows and 2 columns
o/p – 10

Proceso de entrevista

El proceso de entrevista consta de 4 entrevistas técnicas. Cada entrevista técnica se basa principalmente en estructuras de datos y algoritmos. El código para una solución optimizada a cada problema planteado en cada ronda debe escribirse en papel.

Ronda técnica 1: 50 minutos

1. Un vistazo a mis proyectos y logros.

2. Una pregunta bastante similar a Plataformas mínimas

3. Dada una array (tamaño 365) de valores booleanos que indican si una persona en particular viajará ese día o no. Los esquemas de boletos se dan como para 1 día cuesta 2 rupias, para 7 días (continuos) toma 5 rupias, etc. Tenemos que seleccionar los boletos de tal manera que el costo total de todos los boletos sea mínimo para todo el viaje. (Algo similar al problema de cambio de moneda).

Ronda técnica 2: 90 minutos

1. Invierta una LinkedList de la manera más eficiente. ¿Podemos invertir en la complejidad del espacio 0(1)?

2. Verifique el palíndromo en una LinkedList, digamos en 0 (1) complejidad espacial.

3. Para encontrar el número máximo de personas en un grupo en cualquier momento dada la hora de entrada y salida de cada persona.

4. Dada una array 2D que contiene 0 y 1 ordenados por filas, escriba el algoritmo más eficiente para devolver el número máximo de 1 en una sola fila.

5. Una pregunta similar a este problema de partición de pintores . Quería una solución de programación dinámica de complejidad temporal O(k*N^2).

6. Discusión sobre la implementación de mi proyecto.

Ronda técnica 3: 60 minutos

1. Una pequeña discusión sobre la base de datos de mi proyecto y la implementación del backend.

2. Obtendrá una secuencia de aristas para un gráfico dirigido. Hay que decir en qué punto se forma el ciclo. (Mi enfoque fue usar conjuntos disjuntos). Me preguntó si también puedo implementar el mismo algoritmo en el gráfico no dirigido. Me pidió que implementara el algoritmo de conjuntos disjuntos y que lo hiciera eficiente usando unión por rango y compresión de ruta. Discutimos sus complejidades temporales.

3. Me preguntó sobre el algoritmo de flujo máximo de Ford-Fulkerson. Discutimos las aplicaciones, las complejidades de espacio y tiempo del algoritmo.

4. Hay una palabra clave para ganar el juego y viene un flujo de entrada de caracteres. Cuando el flujo de entrada forma una palabra clave, el jugador gana. Encuentra en qué punto un jugador gana. Básicamente era un problema de búsqueda de substrings. Expliqué mi enfoque usando el algoritmo Z y luego discutimos el algoritmo KMP.

5. Algunas preguntas simples sobre el sistema operativo, como semáforos, hilos, programación, etc.

Ronda técnica 4: 60 minutos

1. Estaba revisando mis habilidades escritas en Currículum. Más tarde hizo preguntas sobre mi proyecto de string de bloques.

2. Escriba el código para la solución recursiva de DFS para un árbol N-ario

3. Escriba el código para la solución iterativa de DFS para un árbol N-ario.

4. Escriba el código para la solución iterativa de DFS para un árbol N-ario sin una pila.

5. Escriba el código para la solución iterativa de DFS para un árbol N-ario sin pila cuando se proporciona el puntero principal.

Veredicto: Seleccionado

Puntas-

Después de escuchar la pregunta aclara las dudas que tengas, de lo contrario podrías terminar resolviendo una pregunta equivocada y esto dejará una mala impresión en el entrevistador. Incluso si conoce la solución, primero dígale a la fuerza bruta y luego optimícela. Escribe el código una vez que alcances el algoritmo optimizado. Hable con el entrevistador sobre las compensaciones entre las complejidades del espacio y el tiempo. No se asuste si se toma más tiempo para resolver un problema, ellos esperan que lo haga. No se asuste si no puede encontrar una solución optimizada, sino que interactúe con el entrevistador sobre su enfoque para que pueda señalar dónde se está equivocando. Cuéntales tu proceso de pensamiento en lugar de decirles la solución directamente. Amazon pone más énfasis en implementar estructuras de datos optimizadas en lugar de solo encontrar una solución. Así que asegúrese de que sus implementaciones de estructura de datos estén en forma optimizada. Mantente seguro y confía en tus instintos.

Publicación traducida automáticamente

Artículo escrito por RamgopalVarma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *