Experiencia de entrevista de Flipkart para la pasantía de verano de SDE | Virtual Presencial 2020

Flipkart visitó nuestro campus (virtualmente 🙂) en septiembre para el Programa de contratación de campus (la clase de pasantía SDE de 2021). El proceso continuó durante el período de una semana, con la ronda de codificación programada para el lunes y las entrevistas para el sábado, y finalmente se declararon los resultados el domingo.

Ronda 1 (Evaluación de codificación de la máquina 90 minutos): hubo 3 problemas de programación, como se indica a continuación.

  1. Dados n grupos de cantantes (como una array de tamaño n con arr[i] que indica el i-ésimo tamaño del grupo) y m micrófonos disponibles, tuvimos que generar el tamaño de grupo mínimo más grande compartiendo un solo micrófono. Un grupo solo podría dividirse en dos grupos adicionales a la vez (es decir, en una sola división, solo podrían formarse dos subgrupos. Además, estos subgrupos también podrían dividirse utilizando el mismo enfoque). El enfoque fue utilizar una búsqueda binaria y verificar la optimización del tamaño del grupo. Por ejemplo: entrada: [100, 60, 80, 40, 30], m = 9 salida: 40 (los grupos después de la división podrían ser los siguientes [40,40,20,40,20,40,40,40,30]) Complejidad de tiempo: O (nlogn)
  2. Basado en gráfico: este problema tenía n Nodes numerados del 1 al n y m bordes, el objetivo era devolver el componente conectado con la mayor suma de prioridades (se proporcionó una array de prioridades para cada Node). Es posible una solución simple basada en DFS. Tiempo y espacio: O(n)
  3. Dado un número n (también podría ser negativo), el objetivo era obtener la permutación que tuviera la magnitud más pequeña (sin ceros iniciales donde se permitieran). Ej: Para 901, la salida debería ser 109. [Lo hice creando una array de sus dígitos y ordenando la permutación] Complejidad de tiempo: O (nlogn)
  4. Problema similar: https://practice.geeksforgeeks.org/problems/next-greater-number-set-digits3503/1

Resolví los tres problemas y me tomó alrededor de 45 minutos, después de lo cual envié mi prueba. [Aún quedaban 45 minutos :)].

12 estudiantes fueron preseleccionados para la entrevista técnica. Las entrevistas se realizarían en la plataforma AMCAT.

Ronda 2 (Entrevista técnica 1 Alrededor de 40 minutos): Saludé al entrevistador y él hizo lo mismo. Inmediatamente, dado que la entrevista estaba programada para solo 30 minutos, comenzó con las preguntas de codificación.  

  1. El primer problema apareció en la pantalla y al verlo tuve una sonrisa sutil. Se había proporcionado una array ordenada junto con el número de destino a encontrar, la declaración era dar el rango de índices [l,r] de modo que todos los elementos en este rango sean el objetivo. Si el objetivo no estaba presente, la salida sería una array vacía []. https://practice.geeksforgeeks.org/problems/binary-search/1

    P.ej:

    Input:[5,11,15,80,80,101]  
    Output: [3,4] (0-based)

    Le di 4 enfoques al problema y el entrevistador se mostró muy convencido. 🙂

    • Un recorrido de array simple es O (n) tiempo.
    • Al aplicar la búsqueda binaria y luego expandir ambos lados del primero, se encontró el objetivo, pero esto también podría haber sido O (n) en el peor de los casos.
    • Aplicar dos búsquedas binarias para la primera y la última aparición por separado. Complejidad O(logn+logn). Después de esto, el entrevistador dijo que qué pasaría si tuviera acceso a las funciones de la biblioteca.
    • Le dije que podíamos usar el límite inferior y el límite superior para resolverlo.
  2. Luego llegamos al siguiente problema. Dada una array de solo números 0-9, teníamos que maximizar la cantidad de cubos en la array dada la condición de que todas las ocurrencias de un dígito específico tenían que venir en el mismo cubo.

    P.ej: 

    Input: [0,0,1,1,2,1,7,8,7,9,9]
    Output: 4 ([0,0],[1,1,2,1],[7,8,7],[9,9])

    Era posible una solución O(n) simple dado que almacenamos el primer y último índice de cada número que aparece en la array.

  3. A continuación, se disparó otro problema, la declaración: Dado un árbol n-ario, conviértalo en un árbol binario para almacenarlo en la memoria, ya que no era posible almacenar un árbol n-ario.

    Entonces, tuvimos que implementar las funciones codificar() y decodificar() para el mismo. Inicialmente, mi enfoque fue un poco desordenado, pero seguí hablando de eso, me dio una pista sutil y 30 segundos para encontrar la solución. Lo abordé usando la creación de Nodes ficticios, ya que él ya me había eximido de la complejidad del espacio y el tiempo al comienzo de este problema (y llevábamos 10 minutos de retraso). Finalmente, me dio una serie de casos de prueba y mi solución los aprobó todos, por lo que parecía muy convencido.

El entrevistador fue muy atento y se coordinó maravillosamente bien, dando instrucciones y sugerencias cuando fue necesario. 

Este fue el final de la ronda. 7 personas avanzaron a la siguiente ronda.  

Ronda 3 (Entrevista técnica 2 Alrededor de 37-40 minutos): Esta ronda comenzó de una manera diferente, donde el entrevistador primero me preguntó sobre mí y me dijo que diera una breve descripción de todos los proyectos incluidos en mi CV. Tuvimos una buena conversación durante unos 10 minutos y luego comenzó con las preguntas de codificación. Me preguntó si me gustaba o no Graphs a lo que respondí que era mi favorito.

  1. Se le proporciona una array de enteros (con arr[i] que describe el índice de la array a la que podemos saltar desde el i-ésimo índice). Se nos permitió pasar del índice actual al índice siguiente o llegar a [i] como se describe. El objetivo era determinar el número mínimo de saltos (bordes atravesados) para alcanzar el último índice. https://practice.geeksforgeeks.org/problems/minimum-number-of-jumps-1587115620/1

    Conecté cada índice con arr[i] y (i+1) con bordes dirigidos para modelar el gráfico deseado. Luego, di una solución de fuerza bruta para generar todos los caminos y ver si podíamos llegar al final o no. Dijo que era demasiado agitado y quería que lo resolviera usando BFS en lugar de DFS. Entendí la pista y le dije cómo funcionaba todo el procedimiento. Complejidad temporal: O(N) y Complejidad espacial: O(N) Dijo que quería comprobar mi conocimiento de BFS. (Aún así, no se deseaba ningún código 🙂)

  2. Dada una array binaria (solo 0 y 1) en la que se ordenan todas las ‘filas’. Debíamos encontrar el número máximo de ceros (en una fila) y su índice de fila. https://practice.geeksforgeeks.org/problems/row-with-max-1s0023/1

    P.ej:

    Input: 0 0 0 0 1 1 1 1 1 1
           0 0 1 1 1 1 1 1 1 1
           1 1 1 1 1 1 1 1 1 1
           0 0 0 0 0 0 0 0 1 1
           0 0 0 1 1 1 1 1 1 1
    Output:8 zeros in 4th row

    Primero di un enfoque de fuerza bruta para recorrer todas las filas y columnas. Complejidad temporal: O(n*m). Pidió optimizarlo aún más.

    Le di un enfoque O(n+m). Comenzando desde la primera fila y la primera columna, iríamos incrementando el índice col hasta que encontremos un 1. Cuando se encuentre 1, actualice la respuesta y pase a la siguiente fila. Recuerda cuidar los casos extremos.

    Me pidieron que escribiera pseudocódigo y yo también estaba feliz de hacerlo.

Finalmente, el entrevistador me preguntó si tenía alguna pregunta para él a lo que le respondí:

¿Cómo es ser parte de Flipkart? ¿Qué tipo de proyectos se asignarán a los pasantes? Dio la respuesta, tuvimos una pequeña charla y la ronda terminó.

6 personas pudieron llegar a la ronda de Hiring Manager, que fue la ronda final. Mi entrevista había sido programada en el primer horario. Confiaba en que saldría bien.  

Ronda 4 (ronda del gerente de contratación alrededor de 25 a 30 minutos): este fue un gerente senior que tomó la entrevista a diferencia de las dos rondas anteriores. Empezó saludándome y preguntándome por el escenario del Covid19 en mi localidad, donde me hospedé, y esas cosas.

Luego me preguntó sobre el semestre en el que estaba y las materias que se habían impartido hasta ese momento.

Nuevamente me pidió que le contara sobre mí. Expliqué brevemente mi viaje en el dominio de la informática y hacia dónde me dirigía.

Luego me preguntó vívidamente sobre mis habilidades y valores (preguntas típicas de recursos humanos). Siempre relacioné las preguntas con una anécdota de mi vida y continué contando cómo fracasé, intenté, di lo mejor de mí, lo logré, etc. impresionado, y siguió profundizando en aquellas experiencias que le conté. Mi historia de JEE, los cuestionarios como una pasión en la escuela, el teatro en la universidad (incluso me preguntó la historia completa de la obra ‘No puedes llevártelo contigo’), etc. Estaba tan feliz de complacerlo, esto fue un sueño. hecho realidad la ronda de recursos humanos para mí. Era tan humilde en la forma en que hablaba y hacía preguntas y respondía muy bien a todas mis respuestas. Después de 21 minutos, dijo que había terminado de su parte y me preguntó si tenía alguna pregunta para él.

Hice la misma pregunta que en la ronda anterior, y él continuó hablando de ello con gran detalle, explicando todos y cada uno de los aspectos en los que actualmente enfrentan desafíos y el alcance de la investigación en esos dominios.

Después de esto, dije que no tenía más preguntas y finalmente nos saludamos y la entrevista terminó. Sabía que lo había hecho bien.

Los resultados se dieron a conocer al día siguiente y se seleccionaron 5 personas para pasantías, siendo yo una de ellas.

Algunas sugerencias de mi parte:

  • No pierdas tu confianza si no superas la entrevista. Muchos factores influyen en él y siempre debes aprender algo nuevo de cada experiencia.
  • Vístase formalmente antes de la entrevista y asegúrese de dormir profundamente antes del Día D.
  • No sienta vergüenza de hablar con todo su corazón en las entrevistas, incluso si el enfoque no está bien definido, el entrevistador querrá ayudarlo si interactúa y mantiene el propósito de los problemas con él.
  • Asegúrese de entender el problema con mucha precisión, haga preguntas, repita, no se sienta avergonzado. También puede pedirle a la persona que ejecute un caso de prueba por usted.
  • Comience a escribir el código solo cuando se haya acordado y optimizado por completo. Hágalo de una vez, verifique si hay errores y depúrelos.
  • Mantenga una cara sonriente en todo momento, no intente fingir nada. Esas personas allí son maestros en conocer tu actitud hacia el papel.
  • Finalmente, para la ronda de recursos humanos, cuente ejemplos de su vida en los que exhibió cualidades que el entrevistador quiere conocer. Fácilmente se relacionaría con ellos de esta manera, y sí, trataría de mantenerlo lo más natural posible.

Ve a rockear el escenario 🙂 (¡Porque te lo mereces!)   

Publicación traducida automáticamente

Artículo escrito por shashankmehul02 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 *