Experiencia de entrevista de Microsoft | Conjunto 176 (en el campus)

Ronda 1 (Prueba de codificación):
fue una prueba de codificación que se llevó a cabo en la plataforma cocubes. Se dieron 3 problemas de diferente puntuación:

2 puntos: Dado un número, necesitamos encontrar el múltiplo de 10 más cercano. Las reglas eran las siguientes: 1. Si el dígito de la unidad es menor que 5 devuelve el múltiplo de 10 más cercano menor que el número dado y si es mayor o igual a 5, devuelve el múltiplo de 10 más cercano mayor que el número dado.
Ejemplo:
Entrada:
144
156
Salida:
140
160
Esta pregunta fue muy fácil de resolver. Solo una implementación simple mediante el uso de la operación de módulo.

3 puntos: Dado un número n, necesitamos devolver el número de strings binarias posibles de tamaño n donde no hay strings consecutivas.
Esta es una pregunta de programación dinámica bastante popular para entrevistas. GeeksForGeeks tiene una solución para eso. Enlace: https://www.geeksforgeeks.org/count-number-binary-strings-without-consecutive-1s/

5 puntos: Dada una lista enlazada y dos números enteros M y N. Recorra la lista enlazada de modo que conserve M Nodes y luego elimine los siguientes N Nodes, continúe igual hasta el final de la lista enlazada. Esto fue bastante fácil. GeeksForGeeks tiene una solución para eso. Enlace: https://www.geeksforgeeks.org/delete-n-nodes-after-m-nodes-of-a-linked-list/

50 estudiantes fueron seleccionados después de esta ronda.

Ronda 2 (GroupFly Round):
Fue una ronda de lápiz y papel. Necesitamos resolver el problema que se nos ha dado en papel y explicar nuestro enfoque a los mentores que estaban cerca de nosotros. Problema dado a resolver: Imprime todos los caminos en un árbol de búsqueda binaria con una suma dada. Esto se solucionó fácilmente usando pilas o vectores y teniendo el concepto de recursividad y recorrido en orden de un árbol. Consejos para descifrar esta ronda: 1. Escribe bien. La buena letra importa hasta cierto punto.
2. Escriba primero el enfoque y comente bien su código.
3. Atlast escribe la complejidad del tiempo y la complejidad del espacio de la solución que escribiste. Todo esto realmente importa hasta cierto punto.

24 estudiantes fueron seleccionados para la siguiente ronda.
Ronda 3 (Entrevista técnica):
Esta se llevó a cabo en skype. La primera discusión de media hora se basó completamente en los proyectos y pasantías en las que trabajé
. Me preguntó sobre la explicación detallada del proyecto de investigación que hice en IIT Kharagpur y también sobre la pasantía de aprendizaje automático que hice en Acadview. Después de eso, hizo dos preguntas de codificación: Eran:
1. Dada una array ordenada de números decimales, necesitamos encontrar un número decimal x en ella. Me pidió que redujera el número de comparaciones en él. Estaba realmente confundido sobre qué hacer mejor que el enfoque de inicio de sesión de la búsqueda binaria. Le conté muchos casos:
cuando los elementos se pueden repetir necesitamos encontrar el primer y el último índice.
Ella dijo que necesita más optimización. Estaba realmente confundido sobre qué decir.
Luego dije que si la cantidad de elementos es grande, entonces para reducir el desbordamiento necesitamos calcular la mitad de otra manera para evitar problemas de desbordamiento. Entonces le dije la respuesta que estaba buscando. Si el elemento a encontrar es mayor que el número máximo en la array, solo necesitamos devolver falso. Sé que esto fue ingenuo, pero esto era lo que ella estaba buscando. 😛

2. Dada una lista enlazada, debe detectar si existe un bucle en una lista enlazada o no . Me pidió que no lo abordara con el famoso método de la liebre y la Turtle, el método de pila o el método hash, sino que modificara la estructura de la lista enlazada de tal manera y usara la menor cantidad de memoria adicional posible en la estructura del Node para detectar el bucle en un recorrido único. Para esto usé una variable booleana en la estructura del Node y la manipulé durante el recorrido para encontrar el ciclo.
Quedó impresionada por mi enfoque y pareció satisfecha después de mirar mi código. Luego me pidió que esperara a la siguiente ronda.

Ronda 4 (Entrevista técnica):
Esta fue una ronda F2F.
Primero me pidió que me presentara y luego me preguntó sobre mi pasantía. Luego me hizo una pregunta:

Dado un conjunto de números enteros, la tarea es dividirlo en dos conjuntos S1 y S2 de modo que la diferencia absoluta entre sus sumas sea mínima. Esto realmente tomó tiempo para explicar mi enfoque al entrevistador. Primero comencé con el enfoque recursivo y luego continué con la solución DP de abajo hacia arriba para el problema. Realmente me estaba haciendo muchas preguntas sobre mi enfoque y me estaba dando casos de prueba para validar mi enfoque. Estaba satisfecho con mi enfoque finalmente.
GeeksForGeeks tiene una solución para eso. Enlace:
https://www.geeksforgeeks.org/partition-a-set-into-two-subsets-such-that-the-difference-of-subset-sums-is-minimum/

Entonces empezó a hacerme preguntas de Programación Orientada a Objetos. Las preguntas fueron:
1. Explicar las funciones en línea. ¿Por qué lo usamos? ¿Y qué hace el compilador cuando ve la palabra en línea? ¿Cuándo puede ser desventajosa una función en línea?
2. Explicar las clases abstractas. ¿Qué pasa si una función virtual pura no está definida en la clase derivada?
3. El famoso problema del diamante utilizando la clase base virtual. Luego pasó a los Sistemas de Gestión de Bases de Datos. Las preguntas fueron:
1. Explicar el flujo de trabajo de las bases de datos. Desde la especificación de recursos de software hasta la normalización. Me acaba de preguntar por los pasos.
2. Luego me preguntó sobre todas las formas de normalización y tuvimos una discusión detallada al respecto. Me estaba haciendo muchas preguntas sobre BCNF.
A continuación, pasó al diseño del sistema:
Dado un sitio de compras como flipkart o amazon, debe diseñar la página del portal de pago y
cómo validaría la información que ingresó.
Me dio tres categorías diferentes de pago:
1. Tarjeta de débito
2. Tarjeta de crédito.
3. Banca Neta.
También me pidió que dijera todos y cada uno de los métodos de prueba que usaré para probar la página. Tuvimos una discusión detallada al respecto. La parte bancaria neta fue la parte más desafiante. Luego hizo algunas preguntas de recursos humanos que acepté fácilmente.


Ronda 5 (Técnico con recursos humanos):

El entrevistador primero me preguntó sobre la pasantía de verano que hice en IIT Kharagpur. Estaba haciendo preguntas profundas a partir de él. Realmente sabía sobre los modelos de ruido y las redes que usaba.
Luego me preguntó sobre mi pasantía de aprendizaje automático y me dio un problema del mundo real para resolverlo con cualquier algoritmo que conozca.
Dado nuestro portal universitario, ¿cómo mostraré las noticias más populares en Twitter de todas las categorías? Usé K-Means Clustering para resolver el problema. Luego me preguntó cómo funciona y le expliqué el método de desplazamiento del centroide.
No dio ninguna reacción.. 😛

Luego pasó a Sistemas operativos:
¿Qué es un semáforo? ¿Es una variable o una función? ¿Cómo se definen sus operaciones atómicas? ¿Cómo se utiliza para resolver el problema de la sección crítica? ¿Cómo se utiliza para mantener el orden de ejecución de los procesos?
Le di las respuestas requeridas. Parecía satisfecho. Luego hizo una pregunta:
rotar una array N*N en el sentido de las agujas del reloj.
Esto fue fácil para mí y le expliqué el enfoque de la transposición y las filas inversas. Estaba satisfecho con mi enfoque.
Volvió a cambiar al diseño del sistema:
me pidió que diseñara un acortador de URL como una URL pequeña.
Realmente luché mucho con esto ya que no he estudiado bien el diseño de sistemas, pero le di el método de hash y codificación y traté de abordarlo con él. Volvió a dar expresiones neutrales..:P
Finalmente me preguntó sobre mis antecedentes familiares. Sobre mis pasatiempos y los elogios que gané en ellos. Y luego hizo las preguntas comunes de recursos humanos como ¿Cuál es su objetivo profesional? ¿Por qué Microsoft? y todo.
Luego me pidieron que esperara.
Finalmente se seleccionaron 10 alumnos y yo fui uno de ellos. Realmente fue el día más increíble de mi vida. 🙂

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *