Ronda 1 (Ronda Escrita): Constaba principalmente de 4 secciones.
- Ronda de depuración: 7 códigos para depurar en 20 minutos
- Prueba de codificación: 2 preguntas de codificación en 70 minutos
- Evaluación de la personalidad: no se da un límite de tiempo (idealmente toma de 15 a 20 minutos)
- Sección de capacidad de razonamiento: 24 preguntas en 35 minutos
En la sección de codificación había 2 preguntas:
- Dadas dos listas enlazadas ordenadas. Combinarlos en uno y devolver el puntero principal.
- Encuentra conexiones críticas (Puentes) en un gráfico.
Aquellos que completaron todos los casos de prueba en ambas preguntas fueron seleccionados para las entrevistas. (37/200 despejado)
Ronda 2 (Entrevista Técnica): Comenzó con una presentación formal. El entrevistador dijo que esta ronda durará una hora y se harán 2 preguntas. Así que asegúrese de completar el código de cada pregunta dentro de los 30 minutos individualmente. Se proporcionó un enlace de código compartido para el código de escritura.
El entrevistador fue muy amable y esperaba la solución más optimizada para el mismo. El entrevistador también ayudó mucho en varios enfoques y estaba pidiendo casos extremos para los enfoques.
Pregunta 1: Dada la identificación del producto y las ventas del producto en particular, diseñe una estructura de datos para mostrar los N principales productos de tendencia por ventas y también cree una función para actualizar el valor de las ventas.
Solución: use un montón máximo modificado. Haga la estructura e implemente las funciones como maxHeapify, extractMax, tecla de aumento/disminución. En el montón máximo, la array debe ser de pair<int, int> para almacenar tanto la identificación del producto como las ventas.
Pregunta 2: Implemente el bloqueo en un árbol binario. Un Node de árbol binario puede bloquearse o desbloquearse solo si todos sus descendientes o ancestros no están bloqueados. Para llegar a la solución optimizada, se le permite cambiar la estructura del árbol.
El entrevistador me ayudó en el proceso y me dio 1 o 2 pistas que pude captar.
Enlace: https://www.dailycodingproblem.com/blog/lockable-binary-trees/
Esta ronda no fue una ronda de eliminación y todos procedieron a la Ronda 3.
Ronda 3 (Entrevista técnica): El entrevistador me pidió que me presentara y me preguntó sobre los proyectos. Siguieron algunas preguntas cruzadas y luego el entrevistador dijo que nuevamente se harán 2 preguntas de codificación dentro del período de 1 hora. Asegúrate de no exceder el tiempo.
Pregunta 1: Dada una string y un entero k. Un grupo de k caracteres idénticos debe eliminarse cualquier número de veces hasta que ya no sea posible.
Solución: usó una pila y luego siguió comparando el carácter que se agregará con la parte superior de la pila (k veces). Complejidad de tiempo: O(nk)
El entrevistador solicitó una mayor optimización, usó pair<char, int> en la pila para almacenar los caracteres y su aparición continua.
(Enlace: https://www.geeksforgeeks.org/reduce-the-string-by-removing-k-consecutive-identical-characters/)
Pregunta 2: dada una cuadrícula 2D que contiene varias personas, puntos abiertos y ubicaciones bloqueadas. Una persona puede moverse en cuatro direcciones (arriba, abajo, izquierda, derecha). Encuentre la distancia mínima para cada punto abierto desde su persona más cercana. Si algún punto abierto es inalcanzable, almacene -1 en él.
Solución: considere una cola y almacene las coordenadas de cada persona en esa cola. Después de eso, cree una array de distancia de la misma dimensión (Inicializado como INT_MAX). Aplique BFS para cada persona y siga encontrando el valor mínimo posible para todos los puntos de la cuadrícula. El entrevistador ayudó a llegar a este enfoque.
Finalmente, se informó que la ronda de entrevistas ha terminado y los resultados se darán a conocer pronto.
Veredicto: Seleccionado 🙂