Recientemente me colocaron en Microsoft IDC. Aquí está mi experiencia de entrevista 🙂
Las dos primeras rondas fueron realizadas por Cocubes.com en nuestro campus. Las otras rondas fueron presenciales. Microsoft fue declarada una empresa de ensueño en nuestro campus, los estudiantes de las corrientes CSE/ECE/MCA/MTech eran elegibles para sentarse. Había venido tanto para pasantías como para puestos de tiempo completo.
Ronda 1: Aptitud técnica
La primera ronda constaba de 15 preguntas a realizar en 30 minutos.
Los MCQ se basaron en C.C++, Java y algunas preguntas del sistema operativo. Alrededor de 200+ de nuestra universidad se sentaron para esta ronda.
Ronda 2: Ronda de codificación en línea
Después de la primera ronda, alrededor de 100 (que también incluyeron a los estudiantes en prácticas) fueron preseleccionados para la segunda ronda. Esta ronda tenía dos preguntas de codificación que se debían realizar en 90 minutos.
Todos recibieron diferentes conjuntos de preguntas. Las preguntas que me surgieron fueron:
- Dadas dos arrays donde los dígitos de una array representan un número, maximice el número reemplazándolo con elementos de la segunda array.
por ejemplo:
arr = {3,1,4,5,6}
rep = {1,9,5,2,3}después del reemplazo
arr = {9,5,4,5,6}
se puede usar un dígito de rep para reemplazar solo una vez.
Para esto, casi todos los que recibieron esta pregunta usaron un método de fuerza bruta. Pero yo había usado un enfoque diferente. Construí un montón máximo de array de repeticiones. luego lo reemplazó en arr y eliminó lo mismo del maxheap. - Dada una array, donde cada celda representa un valor de fuerza. El valor puede ser positivo, negativo o cero. En cada celda se agrega el valor de fuerza. Tienes que llegar desde el punto (0,0) al punto (m-1,n-1) si en algún punto la fuerza se vuelve cero o negativa, entonces no puedes seguir adelante. Encuentra el mínimo fuerza requerida antes de empezar a llegar al final de la array.
p.ej . {{ 1,-3,0},
{-2,1,-1}} Respuesta: 2 ((2+1+(-2)+1+(-1)=1 ruta tomada)
Di una solución DP pero no pudo pasar algunos casos de prueba en esta pregunta.
Después de esta ronda, se preseleccionaron alrededor de 15 estudiantes (incluyéndome a mí 😀). Después de algunos días obtuvimos estos resultados y luego recibimos una invitación para una entrevista en el sitio en MSIDC, Hyderabad.
Ronda 3: Ronda de codificación escrita
Alrededor de 30 estudiantes que consistían en estudiantes de otras universidades también fueron llamados en el sitio. Esta fue una ronda escrita. A todos se les dio alrededor de 45 minutos y 1 pregunta.
- Dada la raíz de un árbol binario, un valor n y k. Encuentra la suma de los Nodes a la distancia k del Node con valor n. Esto es similar a esta pregunta en geeks -> https://www.geeksforgeeks.org/print-nodes-distance-k-given-node-binary-tree/
Pude hacer esto bastante rápido 😀 Incluso expliqué mi respuesta a RR.HH. y me pidió que escribiera diferentes tipos de casos de prueba para comprobar exhaustivamente si mi código funciona en todos ellos.
Después de esta ronda, alrededor de 14 personas fueron preseleccionadas.
Ronda 4: Entrevista técnica
Esta fue una ronda de entrevistas personales. El entrevistador me preguntó sobre mí y los proyectos que he realizado hasta ahora. Discutimos brevemente esos proyectos.
Luego me dio dos preguntas para resolver:
- Encuentre un elemento en una array rotada https://www.geeksforgeeks.org/search-an-element-in-a-sorted-and-pivoted-array/
- Dadas dos listas enlazadas, ambas representan un número. Cree una lista vinculada que contenga su suma
Igual que -> https://www.geeksforgeeks.org/sum-of-two-linked-lists/
Estas eran preguntas bastante fáciles. Conocía las soluciones y se las expliqué al entrevistador. Me hizo algunas preguntas y pareció satisfecho. Me preguntó si tenía alguna pregunta para él. Bueno, una cosa de la que me di cuenta después de dar entrevistas fue que cuando le hacen alguna pregunta al candidato, entonces siempre debes preguntar algo, muestra que estás interesado. Así que le pregunté sobre las diferentes tecnologías en las que funcionaría un nuevo SDE y cosas por el estilo. Tuve una muy buena discusión con él, me dijo muchas cosas de su parte también.
Entonces llegué a la siguiente ronda 😀
Ronda 5: Entrevista Técnica
Esta ronda fue sobre cuestiones de diseño. Si revisa los conjuntos de entrevistas anteriores, notará que Microsoft hace preguntas de diseño para evaluar la capacidad de los candidatos para resolver un problema de la vida real. Todos recibieron diferentes preguntas en su entrevista personal. La pregunta que me llego fue:
- Tienes que diseñar un editor de texto como el bloc de notas. Le preocupan las siguientes funcionalidades: insertar, eliminar y buscar. Puede suponer que las otras funcionalidades del editor de texto, como guardar, mostrar texto, etc., están a cargo de algún otro desarrollador. Solo tiene que sugerir qué tipo de estructuras de datos usaría para llevar a cabo las funcionalidades en cuestión de manera eficiente.
– Me dijo que me tomara mi tiempo y diera la solución. Le di una solución de considerar el texto como una lista enlazada de palabras. Donde cada Node en la lista enlazada contenía la string de palabras y un índice. Y para cada Node en la lista enlazada tendré una estructura Trie. Usé trie para una búsqueda eficiente. Lo que sugerí fue que use trie cada vez que el usuario ingrese una palabra y la inserte en trie y la hoja de esa palabra contendrá el índice de esa palabra más el puntero a ese Node en el enlace. lista . Si supongamos que el trie ya tiene la palabra, entonces aumento el número de palabras en la hoja y la hoja contendrá un vector que tiene la lista de índices donde se ha producido la palabra y la lista de punteros donde la palabra está presente en la lista. escribió el código y explicó cómo puede manejar todos los casos de esquina. Discutimos la solución y me hizo ciertas preguntas sobre diferentes casos de prueba. Mi enfoque los manejó bien. Parecía satisfecho. Agregó a la pregunta que la consulta de búsqueda podría contener palabras o frases. Así que mi uso de índices podría manejar la búsqueda de frases 🙂. También sugerí que, en lugar de la estructura de datos Trie, podríamos usar un árbol de búsqueda ternario, ya que sería más eficiente en cuanto al espacio.
Tenía algunas dudas sobre esta ronda, pero logré pasar 😀 Después de esta ronda, solo unos pocos estudiantes lograron pasar a la ronda final.
Ronda 6: RRHH+Entrevista Técnica
El entrevistador tenía bastante experiencia y era muy agradable. Me preguntó cómo fueron mis rondas anteriores. Estaba revisando mi revisión de desempeño de las rondas anteriores. Echó un vistazo a mi CV y me preguntó sobre los proyectos que hice. Vio que había hecho una pasantía en IITB, así que me preguntó mucho sobre ese proyecto. También me hizo algunas preguntas básicas de recursos humanos como ¿Por qué Microsoft debería contratarlo? ¿Dónde te ves en los próximos 5 años? Quedó muy impresionado con mi expediente académico y mi rango AIEEE. Me preguntó cómo manejé mis exámenes y entradas de la 12ª junta. Lo hizo muy cómodo y casi estaba charlando y conociendo sobre mí.
- Luego me preguntó sobre la pregunta que me había dado en la ronda anterior, es decir, el Editor de texto. Le di una breve explicación sobre mi enfoque. Luego me dio otra pregunta basada en el Editor de texto. Me preguntó cómo podía recuperar K palabras más frecuentes del texto de manera eficiente. Afortunadamente, estaba haciendo esta pregunta justo antes de esta ronda 😀. Sugerí la solución usando Trie y Min Heap.
Similar a -> https://www.geeksforgeeks.org/find-the-k-most-frequent-words-from-a-file/
Me pidió que escribiera el código para el mismo. Lo anoté y se lo expliqué. - La siguiente pregunta que me dio fue: – Dado un árbol de búsqueda binaria, imprima la ruta que tiene la suma igual a k y tiene saltos mínimos. es decir, si hay varias rutas con la suma igual a k, imprima la ruta con el número mínimo de Nodes.
Primero le di el enfoque de fuerza bruta. Similar a -> https://www.geeksforgeeks.org/root-to-leaf-path-sum-equal-to-a-given-number/
Pero sabía que no estaba usando el hecho de que tenemos un árbol de búsqueda binaria. Entonces, el entrevistador me dio algunas pistas, como cuál es el criterio principal de un BST. Inmediatamente me di cuenta de que la ruta mínima siempre estará en el lado derecho del Node porque tiene el valor más grande. Le dije la solución que parecía satisfecho ..
Luego me preguntó si tenía alguna pregunta para él. Así que le pregunté dónde puedo mejorar, dijo que no necesitaba ninguna mejora. Lo estoy haciendo muy bien y que debería seguir haciendo lo que estoy haciendo. Eso ciertamente me alegró el día. Hice un par de preguntas más sobre Microsoft y luego a la izquierda.
Finalmente, después de una semana, llegaron los resultados, recibí el correo de que había sido preseleccionado para un puesto de tiempo completo 😀
Puntas :
- Tener un buen conocimiento de las estructuras de datos. Resuelva tantos problemas como sea posible de Geeks4Geeks
- Ten confianza en la entrevista. Tener una cara sonriente y ser adaptable a la pregunta. El entrevistador puede cambiar o torcer la pregunta en cualquier momento solo para confundirlo.
- Los entrevistadores son muy útiles, si se siente atascado, comuníquese con ellos… explíqueles su enfoque y le darán pistas.
- Cuando el entrevistador haga la pregunta, escúchela con atención, no se apresure a escribir el código de inmediato. Pregúntele sobre los diferentes criterios y restricciones relacionados con la pregunta.
- Verifique su código con todos los casos de prueba posibles y enumérelos.
- Por último, incluso si no puede obtener la solución correcta, simplemente explique su enfoque. Los reclutadores analizan cómo abordas el problema, no es necesario que tengas la solución precisa.
Gracias a geeksforgeeks, realmente me ayudó en mi preparación para la colocación. La amplia gama de preguntas sobre estructuras de datos sin duda ayudó mucho.
Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
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