Fecha: 7 de agosto de 2019
La primera ronda fue una prueba en línea que constaba de 2 preguntas de codificación y 28 MCQ en mettl. El nivel de codificación de las preguntas varía de fácil a medio. Todos tenían diferentes preguntas de codificación. Algunos de los que recuerdo son:
1. Recuento de inversiones en la array
2. Evaluación de postfijo (manejar también el número negativo)
3. Moda mediana media en array
4. Rompecabezas de lanzamiento de dados (DP)
5.Raíces de la ecuación cuadrática
6.Ecuación lineal en una variable
7.Subsecuencia común más larga
8.Evaluar la operación Infix (manejar también el número negativo)
Los MCQ eran difíciles y requerían un conocimiento profundo de DSA y C C++.
De alrededor de 350 estudiantes, 53 fueron llamados para una entrevista.
La ronda 1:
La entrevista duró 25 minutos y tuvo una discusión detallada sobre 2 preguntas. Empezó directamente con una pregunta de codificación.
- dada una string codificarlo. P.ej. aaabb -> a3b2
- hay n persona con su altura y peso dados. Debe seleccionar el número máximo de personas que pueden hacer cola con la condición de que la altura y el peso de la persona en la cola siempre sean menores o iguales a la siguiente persona. Debe devolver las personas, no el recuento. (LIS)
Esta ronda salió bien y me llamaron inmediatamente para la siguiente ronda.
La ronda 2:
Esta ronda duró 30 minutos.
- Dadas k arrays de tamaño n cada una. Tienes que seleccionar un número de cada uno de ellos de manera que la diferencia entre ellos sea mínima. Inicialmente, la pregunta era para 3 arrays, le dije la solución rápidamente y luego cambió 3 a k.
- AVL implantado.
- una pregunta sobre el diseño de una estructura de datos que no recuerdo. Usé hachís para eso. Me preguntó sobre la complejidad del peor tiempo del hash, ideas para mejorarla.
- Una pregunta sobre el intento.
- mediana del flujo continuo de números enteros.
- Dada una array de n enteros que van desde 1-n-2, en la que cada entero viene una vez y dos enteros vienen dos veces, encuentre ambos.
Tuve que escribir código para cada pregunta. Esta entrevista también salió bien y me llamaron para la próxima ronda de inmediato.
Ronda 3:
Esta ronda duró 90 minutos. Esto era diferente de los dos anteriores. Fue más una ronda de discusión.
- Discusión del proyecto.
- Consulta de suma de rango con actualización. Le dije suma de prefijo. Quería un mejor enfoque. Le dije segmento de árbol.
- Luego solicitó la actualización del rango de la mejor manera optimizada. Le dije Propagación perezosa. Tuve que escribir código para el árbol de segmentos con propagación diferida.
- 1 hora de debate en redes. (Le dije que no había revisado pero siguió preguntando)
Esta ronda también salió bien. En redes brindó algún aporte cada vez que lo necesité. Como era tarde, mi próxima ronda estaba programada para el día siguiente.
Ronda 4 (Elevador de barras)
Esta ronda duró aproximadamente 1 hora.
- Coincidencia de patrones comodín. Discutí todos los casos de esquina y casos base junto con la relación de recurrencia. Me pidió que escribiera código en dp de abajo hacia arriba. Estaba muy contento con mi solución.
- Diseñe una estructura de datos para ejecutar un flujo de string. Tiene que imprimir una palabra si no ha llegado dentro de los 10 segundos, de lo contrario, ignórela. Tienes que administrar la memoria de la manera más óptima. Discutí los diversos enfoques usando trie, hash, lru. Cuando le dije mi solución con cola y hash, se sorprendió y me dijo que no había pensado en esa solución. Me pidió que lo codificara.
- discusión del proyecto.
- Vaya, cómo el compilador implementa la clase abstracta. Cuando le dije la solución dijo impresionante.
Estaba seguro de mi selección, ya que había visto mi hoja de comentarios y todos mis comentarios fueron sólidos, excepto por CS fundamental en la tercera ronda, que fue mixto, y también la cuarta ronda fue buena.
El resultado se anunció a las 12:30 a. m. Se seleccionaron un total de 9 para FTE y yo fui uno de ellos.