Nutanix vino recientemente a nuestra universidad para reclutar pasantes. Alrededor de 130 personas dieron la ronda de codificación y 12 fueron seleccionadas para las entrevistas. La prueba duró 1,5 horas, con 2 preguntas.
Ronda de codificación:
P1: https://www.geeksforgeeks.org/minimum-positive-points-to-reach-destination/
Personalmente, encontré la pregunta difícil. Empecé con la idea de representar dp[i][j] como el número mínimo de puntos a alcanzar hasta el índice [i][j] desde [0][0]. Sin embargo, si piensa en profundidad, sabrá por qué está mal o, en otras palabras, no produce la respuesta más óptima. 3 casos de prueba superados.
P2: Dada una lista de puntos con coordenadas x e y, debe calcular cuántos puntos no están dominados por ningún otro punto. Se dice que un punto ‘p’ domina a otro punto ‘q’, si p(x)>q(x) Y p(y)>q(y).
No me llevó mucho tiempo resolver este problema. Todos los casos de prueba pasaron.
Entrevista de la ronda 1:
Había 3 personas tomando entrevistas en paralelo en tres cubículos diferentes. Todos ellos hicieron las mismas preguntas a los estudiantes que daban la entrevista al mismo tiempo. Básicamente fueron tres personas, luego salieron los tres, y luego se fueron los tres siguientes, y así sucesivamente dos veces más. Entonces, el mismo conjunto de preguntas para los estudiantes que tienen una entrevista al mismo tiempo en paralelo, y cambiarían las preguntas para el siguiente grupo de estudiantes.
Antes de decir las preguntas que me hicieron, escribiría las preguntas que se les hicieron a otros:
1. Dada una lista vinculada y un puntero a un Node dado, cómo eliminar este Node. Tenga en cuenta que no se proporciona ningún puntero a ningún otro Node, ni siquiera a la cabeza. Solo este Node dado. :https://www.geeksforgeeks.org/in-a-linked-list-given-only-a-pointer-to-a-node-to-be-deleted-in-a-singly-linked-list-how- lo-borras-lo/
2. Dado un gráfico dirigido, encuentra el vértice madre: https://www.geeksforgeeks.org/find-a-mother-vertex-in-a-graph/
3. Dada una array de tamaño n, encuentre los números que tienen duplicados. Los números se encuentran en el rango de 0 a n-1, y más de un número puede tener duplicados: https://www.geeksforgeeks.org/find-duplicates-in-on-time-and-constant-extra-space/
Algunas preguntas más fáciles que no recuerdo. De todos modos, me hicieron las siguientes preguntas:
1. Dado un BST con dos Nodes intercambiados, busque los dos Nodes y vuelva a intercambiarlos (tenga en cuenta que debe intercambiar los Nodes, no solo el valor dentro de ellos).
Me pidió que codificara la solución, lo cual hice. Quedó satisfecho con la solución.
2. Dado un gráfico no dirigido, y cada vértice tiene algún valor asociado, encuentre el número de componentes conectados con valor total (es decir, la suma del valor de todos los Nodes dentro de ese componente conectado) como primo.
3. Esta fue la pregunta más difícil. Me pidió que implementara Sieve. Tan pronto como empecé, me preguntó qué estaba haciendo. Le dije que hice una array de tamaño 10 ^ 6. Luego preguntó “de qué tipo”. dije ent. Preguntó si era necesario. Dije que no, y lo hice bool. Él dijo: «¿Puedes hacerlo mejor?». Al principio no entendí la pregunta. Luego me dio una pista diciendo ¿qué representa bool? Dije sí o no. Luego preguntó cuántos bits necesito para que eso represente, dije 1 bit. Como 0 para no y 1 para sí. Entonces dijo que usara 1 bit. No tenía idea de ninguna estructura de datos que pueda tener un tamaño de número dado de bits (aunque existe uno, lo supe más tarde). Así que dije que si puedo hacer un número entero de tamaño 10^6 bits, entonces podría hacerlo. Pero no es posible construir tal entero. Incluso dije que si tengo tal int, entonces puedo configurar y desactivar bits para hacer lo requerido. Luego hizo una estructura y pasó un puntero a una array y un valor «z». Me preguntó el tamaño de la array, después de una pequeña discusión sobre algunos errores leves, dije 10^6/(4*8); Dijo bien. Luego me pidió que configurara el bit ‘z’. Así que hice dos int x, y; x=z/32; y=z%32; y establezca el bit y-ésimo de arr[x]. Me pidió que escribiera el fragmento de código para restablecerlo también. Lo hice, él estaba feliz.
Básicamente mi primera herida bastante bien. Antes de que comenzara a hacerme preguntas, incluso preguntó por mí para explicarme algo de mi proyecto, como cualquier tipo de favorito. Le expliqué uno relacionado con los cuadrados latinos ortogonales. Estaba bastante feliz de saber todo lo que hice.
De 12, 6 personas fueron seleccionadas para la segunda ronda.
Entrevista de la ronda 2:
3 personas fueron primero, las siguientes tres inmediatamente después de ellas. Como no había ninguna posibilidad de discutir ninguna pregunta con los que iban primero, dieron exactamente la misma pregunta a todos.
Fue una ronda de tecnología + recursos humanos.
Solo se hizo una pregunta técnica, que fue bastante simple.
P: Dado un BST con atributos Izquierda*, Derecha*, Valor, Bloqueado, donde bloqueado y valor son int, averigüe si un Node determinado puede bloquearse o no. Un Node puede bloquearse si ninguno de sus ancestros, o cualquier Node en el subárbol con este Node dado, ya que la raíz está bloqueada.
Primero dije que haría un recorrido hasta el Node dado (se da el puntero del Node dado, por lo que tengo el valor, puedo hacer el recorrido). Comprobaría si había algún Node que estuviera bloqueado mientras llegaba hasta ese Node. En caso afirmativo, simplemente deténgase e imprima «No es posible». Si ningún ancestro está bloqueado, simplemente realice un recorrido del subárbol con ese Node como raíz y busque si algún Node está bloqueado. En caso afirmativo, escriba «No es posible». De lo contrario, escriba «Sí». Ella preguntó la complejidad, dije O (Log (N)) para llegar hasta el Node y O (N) para atravesar el subgrafo. Básicamente tipo de fuerza bruta. Ella pidió optimizarlo. Pregunté si podía introducir un atributo más en la definición de «struct Node». Ella permitió. Luego dije que puedo hacer un cálculo previo y encontrar si algún subárbol de Nodes con ese Node como raíz tiene algún Node en su subárbol bloqueado. En caso afirmativo, establecería este nuevo atributo. Luego, cuando se activan las consultas, simplemente llegue a ese Node en el tiempo O (logN), verifique los ancestros en el camino. Y si se alcanza con éxito, verifique este atributo recién introducido. Ella estaba feliz con la solución. Me pidió que lo codificara, lo hice. Luego un par de preguntas generales de recursos humanos.
Realmente los encontré personas bastante relajadas y geniales. Todo salió bien 😉 😀
De 6 personas, dos fueron finalmente seleccionadas. Disfruté todo el proceso.
Este artículo es una contribución de Devvrit Khatri . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@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