La ronda 1:
La ronda 1 se llevó a cabo en hackerearth y consistió en 50 preguntas MCQ, principalmente sobre aprendizaje automático y probabilidad, y tres preguntas de codificación. Si bien preseleccionaron a los candidatos, no consideraron en absoluto estas preguntas de MCQ y la preselección se realizó únicamente en función de las preguntas de codificación. Las tres preguntas son
- Se le dará una array y tendrá que imprimir el primo más grande de la array, el primo más pequeño de la array. La prueba de primalidad normal O (sqrt (n)) da tiempo de espera. El uso del tamiz principal resolvió el problema del tiempo de espera.
- Se le dará una array y tendrá que decir si puede dividir esta array en dos partes idénticas o no. Por ejemplo: [1, 2, 2, 1] se puede dividir en [1, 2] y [1, 2]. La lógica es simple, cada elemento tiene que ocurrir un número par de veces para que podamos dividirnos así.
- Se le darán dos números a y b. Tienes que decir el número de dígitos después del decimal en (a/b). Si se repite tienes que imprimir infinito. Esto se puede resolver fácilmente mediante una especie de división larga.
Alrededor de 1200 personas dieron esta prueba y habían preseleccionado 50
La ronda 2:
El entrevistador primero me pidió que escribiera mis temas favoritos y escribí estructuras de datos y algoritmos. me empezó a hacer preguntas
El primero es ordenar una lista enlazada. Le dije que los algoritmos de ordenación, como la ordenación por selección o la ordenación por inserción, se pueden implementar fácilmente, mientras que los algoritmos O(nlogn) como la ordenación por fusión y la ordenación rápida son difíciles de implementar y le expliqué las razones.
Se le dará una pila y tendrá que ordenar la pila. Podría usar otra pila si es necesario. Di la solución después de pensar un poco.
Se le dará una array y tendrá que encontrar el número de subarreglos cuya suma es cero. Si hay alguno, debe imprimir el índice inicial y final de cada uno de los subconjuntos. Le di un enfoque O (n ^ 2) y me pidió que lo optimizara. Más tarde, pensando un poco, le di una solución O(n).
Se le dará un árbol de búsqueda binaria y tendrá que imprimir los elementos en orden. Esto es solo el recorrido en orden. Así que me pidió que imprimiera los elementos en orden descendente sin usar el recorrido en orden. Esto es solo recorrido en orden derecho, raíz, izquierdo o inverso.
Después de esto, me preguntó cómo encuentro el k-ésimo elemento más grande en un árbol de búsqueda binaria. Me dio una pista de que la respuesta viene de la pregunta anterior. La solución es simple para repetir el orden inverso k veces para obtener el k-ésimo elemento más grande: p
Se le dará un árbol de búsqueda binaria y un número n. Tienes que decir si hay un par en este BST tal que la suma de este par sea n. Le di el enfoque O(nlogn) convencional con espacio extra. Luego me preguntó si podía hacerlo sin espacio extra. Entonces sería una solución O(n^2).
La siguiente pregunta es eliminar duplicados de una lista vinculada. Le di el approach con un lance. Me pidió que resolviera esto sin usar espacio extra. Le dije que podemos ordenar la lista enlazada y podemos eliminar fácilmente los duplicados con el espacio O(1).
El entrevistador me dijo que me manda a la segunda vuelta :p
Esta ronda duró aproximadamente 1 hora y 15 minutos.
Ronda 3:
Esta vez la entrevista fue con el Jefe Técnico. Escaneó mi currículum e hizo toneladas de preguntas en Android. Cómo hice mis proyectos y las tecnologías que usé en mis aplicaciones. Respondí casi todas excepto algunas 2 o 3 preguntas. Empezó a hacerme preguntas sobre algoritmos como bfs dfs, etc. y cuál es la diferencia entre ellos. Esta ronda duró 30 minutos.
Ronda 4:
Esta es una especie de ronda técnica de recursos humanos en la que me preguntó por qué había usado NoSql en todas partes y cuál es la principal diferencia entre NoSql y SQL. Le di una imagen clara de esto. Luego hizo algunas preguntas de recursos humanos como todos los días al menos 2 o 3 empresas vienen a su universidad, ¿por qué eligió nuestra empresa? Le dije que, dado que esta es una empresa basada en productos, estoy muy interesado en esto. Hizo algunas preguntas más como cuáles son sus planes futuros y principalmente me preguntó por qué su cgpa es muy bajo. Son solo 7.5 :p Me preguntó sobre mi ciudad natal, etc. Me preguntó por qué estoy optando por una compañía de software ya que soy de electrónica y le dije que me encanta programar. Me dijo que el feedback es positivo y quedas seleccionado :p
Me sentí muy feliz con la oferta.