Microsoft visitó nuestro campus para selecciones de pasantías en IDC y perfil de TI. Hubo tres rondas para el proceso de selección del perfil IDC
Primera ronda: codificación de la ronda
3 Se hicieron preguntas en diferentes conjuntos. De los cuales las personas que resolvieron 2 y más están preseleccionadas. Las personas que resolvieron 3 fueron preseleccionadas para la entrevista personal, mientras que las que resolvieron 2 fueron preseleccionadas para la ronda de vuelo grupal.
Las preguntas fueron:
- Se le darán edificios de cierta altura que se encuentran adyacentes entre sí. El sol comienza a caer desde el lado izquierdo. Si hay un edificio de cierta altura, todos los edificios a la derecha de él que tienen alturas menores no pueden ver el sol. Necesita encontrar el número total de esos edificios que reciben luz solar.
Encuentre la subsecuencia creciente (no estrictamente) con el primer edificio como edificio inicial.
Solución : Enlace GeeksforGeeks - Se le darán dos arrays de igual tamaño y deberá maximizar la primera array con los elementos de la segunda array (intercambie los elementos de la primera array con los elementos de la segunda array. Una vez intercambiados, ya no podrá usar el elemento)
For ex: A: 3 4 6 8 9 and A : 5 7 3 6 8
B : 6 7 8 8 9 B : 3 4 6 9 10
Op: 9 8 8 8 9 Op : 10 9 6 6 8Solución : GeeksforGeeks Link
Ordene la segunda array y comience a intercambiar si a[i] < b[i] . de lo contrario, espere el siguiente elemento de a que sea menor que b [i] e intercambie (procedimiento de combinación ingenuo) - Se le darán dos árboles t1 y t2. Debe verificar si t2 es un subárbol de t1 . Si es un subárbol, debe devolver el tamaño de t2 (número de Nodes en él).
Si t1 o t2 son NULL, devuelve -1 .
Si t2 no es un subárbol de t1, también devuelve -1La solución más eficiente fue:Cualquier árbol tiene 2 recorridos únicos. (Ya sea (preorder, inoder), (in, post), (post, pre)). Por lo tanto, atraviéselos y almacene dos recorridos para ambos árboles. Verifique el primer recorrido de ambos árboles ( Coincidencia de strings usando KMP O (N + M)) y de manera similar para el segundo recorrido. Si ambos resultan ser verdaderos (me refiero al patrón existe en el texto). Entonces ya está. De lo contrario, devuelve -1Esta Complejidad es O(N+M) y espacio O(N+M) . Si desea prescindir del espacio, intente con el enfoque recursivo que, en el peor de los casos, requiere una complejidad O (N * M)
Aparentemente, fui preseleccionado para la entrevista personal, por lo que no asistí a la ronda de Group Fly.
- Encuentre la mediana de una array sin clasificar . Le dije que lo ordenara y lo encontrara según la paridad de N (par o impar). Solución NLogN. Me pidió que lo optimizara. Luego le hablé sobre la mediana de una array no ordenada en el método O(N) del peor de los casos… (puedes encontrarlo en gfg). Me preguntó si podía hacerlo usando Selección rápida… Le dije cómo hacerlo. y le sugirió que en el peor de los casos podría llegar a O(N^2). Me dijo que estaba bien y me pidió que escribiera el código. Mi código era un poco tedioso, pero finalmente pude obtener el código correcto.
- Luego me preguntó sobre hash (enstringmiento y direccionamiento abierto: inserciones, eliminaciones, etc.) y mapas de c ++ y sus complejidades.
- Se le proporciona una array desordenada donde cualquier elemento puede repetirse cualquier número de veces. Los rangos de los elementos son > tamaño. N es demasiado alto (10 ^ 7). Entonces, le di O (N) tiempo y O (N) solución de hashing de espacio usando la solución unordered_map. Estaba satisfecho.
- A continuación, la cuestión es validar una fecha para que tenga el formato esperado y tenga 20 años menos que la fecha actual. Debe lanzar una excepción si no es válida. Primero, encontré todas las excepciones posibles y luego escribí un método de aceptación. Me pidió que escribiera código. Esta vez escribí un código limpio que cubre todas las excepciones posibles. Estaba satisfecho. y me dijo que el lema de estas rondas técnicas es verificar si podemos escribir códigos correctos y podemos comprender los conceptos básicos y analizar nuestra fuerza en ellos.
3.ª ronda (ronda de recursos humanos)
El gerente fue muy amable y me hizo preguntas como . ¿Por qué quieres unirte a microsoft? ¿Por qué deberíamos contratarte y cosas relacionadas sobre mí y me pidió que resolviera esta pregunta? Encuentra el Elemento mayoritario (elemento que se repite más de (N/2) veces en un arreglo. Si no existe, devuelve -1. Le dije la forma de resolverlo en tiempo O(N) y O(1) space usando el algoritmo de votación de Moore Y después de estas rondas, me ofrecieron la pasantía para el perfil de IDC.
Aunque también me seleccionaron para la entrevista de GolmanSachs, tuve que aceptar esta oferta y no me presenté para la entrevista personal de GS.
Gracias a GeeksforGeeks por ayudarme a revisar todos los conceptos y practicarlos con la ayuda de Practice.geeksforgeeks.org . Mis últimos 15 días antes del pasante los dediqué por completo a resolver problemas y revisarlos en GeeksforGeeks.
Muchas gracias al equipo!!
Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
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