Recientemente, después de graduarme de la universidad en mayo de 2019, solicité el puesto de SDE-I en mindtickle a través de la recomendación de un empleado. Recibí una llamada dentro de 1 o 2 días de RR. El departamento de recursos humanos fue un gran apoyo durante todo el proceso y toda la programación de las rondas se realizó de acuerdo con mi comodidad y disponibilidad (excepto los sábados y domingos: p).
Ronda 1: Ronda de Skype/Hangout
Esta ronda fue básicamente una ronda de DSA con el entrevistador haciendo algunas preguntas de mi CV. Entonces comenzó con una pequeña discusión sobre mi proyecto de pasantía y algunas preguntas fáciles de seguimiento. Esta fue la ronda más fácil de todas. Luego me hizo una pregunta de algoritmo:
- Dada una lista de n*2 valores con n representando días, la primera columna representará los puntos obtenidos después de realizar una tarea fácil, la segunda columna representará los puntos por una tarea difícil, nuestra tarea es maximizar los puntos obtenidos después de n días, con una condición dada de que si una persona realiza una tarea difícil el día ‘i’, debe tomar un descanso el día ‘i+1’, es decir, no debe realizar ningún trabajo al día siguiente. También puede hacer tareas fáciles o difíciles. Le di una solución dp con explicación, por lo que pareció satisfecho. Me pidió que escribiera el código de trabajo completo en un enlace compartido a través de collabedit y luego ejecutó el código en seco en varios casos extremos. Después me preguntó si tenía alguna pregunta para él, a lo que le pregunté sobre el perfil del trabajo y me explicó sobre los diferentes roles laborales en mindtickle.
Ronda 2: Ronda de Skype/Hangout
Un día después de la primera ronda, recibí la llamada de RR. HH. que los comentarios del entrevistador son positivos y que podemos continuar con la próxima ronda. Me preguntó la fecha de la próxima ronda, le dije que mañana era bueno para mí, a lo que accedió. Esta ronda fue telefónica para mí ya que la conexión a Internet en mi ciudad natal no era buena ese día debido a las fuertes lluvias. Saltó directamente a las preguntas del algoritmo.
- Dada una array, genere cualquier permutación equiprobable aleatoria para esta array y hágalo en su lugar. Propuse la solución utilizando una función aleatoria simple para cada índice y creé una nueva array mediante el intercambio, con lo que quedó satisfecho.
- Luego pidió dado un árbol binario, barajar los Nodes del árbol al azar manteniendo su estructura. Di la solución recorriendo el árbol y almacenándolo en una array (digamos en orden), y aplicaré el enfoque de la pregunta 1 en la array, luego reemplazaré nuevamente los valores del árbol (en el mismo orden transversal) con el barajado formación. Preguntó complejidad de tiempo, complejidad de espacio, dije que ambos están o(n). Me hizo escribir el código de trabajo completo para este enfoque en varios casos de colaboración y ejecución en seco.
- Luego dijo que en la pregunta anterior, reduzca la complejidad del espacio a constante y no se preocupe por la complejidad del tiempo. Me llamó la atención la pregunta por un tiempo, a lo que insinuó que usara la lógica de la pregunta 1 y la pregunta 2. Después de unos 5 minutos, le di una solución o(n^2), en la que atravesé el árbol para cada Node , generé un número de Node aleatorio para este Node y mantuve el conteo para el recorrido desde la raíz, así que cuando el conteo sea igual a ese número generado aleatoriamente, cambié los datos de ambos Nodes.
Ronda 3: ronda F2F en la oficina de Pune
Una vez más, recibí la llamada de Recursos Humanos al día siguiente y me dio una respuesta positiva para la segunda ronda. Luego informó que habrá 2 rondas más de f2f en su oficina de Pune y que reservarán viajes y alojamiento. Ella confirmó las fechas de la entrevista (ambas se realizarán el mismo día) y envió por correo los detalles del hotel y del vuelo.
Esta ronda fue realizada por 2 entrevistadores (formalmente uno, el otro solo escuchaba y hacía algunas preguntas en el medio). La ronda comenzó alrededor de las 12:20 p. m. y duró alrededor de 2 horas. Comenzaron directamente con una pregunta de algoritmo:
- Dada una array ordenada de enteros y una función f=ax^2+bx+c, donde a, b, c pueden ser cualquier número entero, x son valores de array, genere la array ordenada para func. F. Dije calcular directamente los valores de ‘f’ para todas las arrays de entrada y luego ordenar la array creada. Estuvo de acuerdo y preguntó la complejidad del tiempo. Respondí con o (nlogn). Me pidió que redujera la complejidad del tiempo a o(n). Pensé durante 5 minutos y le di un enfoque de 2 puntos. La solución es que, dado que f es parabólica, se abrirá hacia arriba o hacia abajo. Consideremos la apertura hacia arriba. ahora, el punto donde D = 0 para una parábola es x = (-b / 2a), lo busqué binariamente en la array de entrada y dije que f (x) para valores mayores que este x será de orden creciente, y todo f(x) menor que esta xpunto será también en orden creciente. Así que tomaremos 2 punteros, uno para la parte derecha de esta x, otro para la parte izquierda de esta x, y compararemos su f(x) e incrementaremos los punteros en consecuencia (recuerde que aquí solo estoy considerando una parábola orientada hacia arriba). De manera similar se puede hacer para una parábola orientada hacia abajo. Luego me pidió que escribiera un código de trabajo completo para esto y revisó el código en busca de casos.
- Dado un flujo de requests en un servidor capaz de procesar solo ‘n’ requests, encuentre la probabilidad de que cada solicitud entrante tenga la misma probabilidad en esas ‘n’ requests de procesamiento. Puede consultar lo siguiente: https://www.geeksforgeeks.org/reservoir-sampling/. No pude hacer esto porque no estaba familiarizado con este tipo de algoritmos (algoritmo aleatorizado). Me preguntó esto porque había hecho un proyecto de ML en mi tiempo de universidad.
- Algunas preguntas fáciles de probabilidad.
Ronda 4: ronda técnica F2F
Seguido de la tercera ronda, alrededor de las 2 p.m., almorcé con los entrevistadores en la cantina de MindTickle (dan comida gratis :D). Luego, HR informó que la próxima ronda tendrá lugar en los próximos 10-15 minutos.
El entrevistador parecía experimentado y comenzó pidiéndome que explicara el funcionamiento de la cola de prioridad a bordo con marcador en la sala de reuniones. Le expliqué las complejidades de eliminación, inserción, búsqueda y tiempo en la cola de prioridad. Parecía satisfecho. A continuación, me pidió que le explicara el concepto de autoequilibrio en los árboles RB/AVL. Se lo expliqué. Luego me dijo que me sentara y empezó a hacer preguntas en papel.
- 1. Dada una array, encuentre su mediana y un pequeño error en la respuesta es aceptable (¡Alerta, pista!). Dije simplemente ordenar la array y encontrar el elemento del medio. Preguntó la complejidad del tiempo. Dije nlogn. Dijo que lo redujese a o(n). Él dio la pista para usar la discusión anterior. Le dije que podemos crear un árbol binario con la propiedad de que el padre es mayor que el hijo izquierdo, menor que el hijo derecho. Y mantendremos este árbol equilibrado. La raíz será mediana. Quedó impresionado por el uso de los conocimientos anteriores, pero insistió en que la complejidad del tiempo todavía no está cerrada. Después de 5 a 10 minutos, me preguntó si había oído hablar de un algoritmo aleatorio, mediana de una mediana. Puedes buscarlo en Google y puedes encontrarlo fácilmente. Como no tenía conocimiento sobre esto, pasamos a la siguiente pregunta.
- 2. Una simple pregunta sobre Dijkstra. Me pidió entonces que probara por qué Dijkstra es codicioso (por inducción o contradicción, y lo probé por contradicción).
- 3. Algunas preguntas de seguimiento sobre mi proyecto de verano de segundo año.
Después de estas 4 rondas, mientras estaba sentado solo en la sala de reuniones, su cofundador me visitó y habló conmigo, me preguntó mi experiencia durante el proceso de la entrevista, insistió en que me uniera a él para los refrigerios de la noche: p Después de los refrigerios, volví a la sala de reuniones, y poco tiempo después, vino uno de los recursos humanos, hizo algunas preguntas básicas, como de dónde vengo, cómo me siento en pune, y describió toda la ruptura de CTC. ¡Me felicitó por convertirme en un próximo mindtickler!
Puntas :
1. En todas las rondas, los entrevistadores fueron muy amables, no se asuste. Incluso si no puede resolverlo, discuta su enfoque con él. Él lo ayudará a lo largo del problema insinuando la solución.
2. Prepárate para todo lo que has escrito en el currículum.
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