Ronda 1 (1 hora):
Esta ronda se basó en la codificación y el entrevistador hizo 2 preguntas de codificación. Ambas preguntas eran de nivel medio de dificultad.
Q1. Dada una serie de strings. Encuentre el tamaño mínimo del subconjunto de strings para que el conteo sea > 50 % del tamaño de la array.
Ej: [“zapatos”, “cara”, “pizza”, “covid”, “zapatos”, “covid”, “covid”, “cara”, “zapatos”]
La respuesta es [“covid”, “zapatos”]. Explicación: La frecuencia de las strings es la siguiente:
Zapatos: 3, Covid: 3, “cara”: 2, “pizza”: 1
Así que 3(zapatos) + 3(coivid) = 6 hace mayor que (9(tamaño del array)/2), es decir, el tamaño de la array.
Sugerencia: clasifíquelos por orden decreciente de frecuencia.
Inicialmente abordé esta pregunta con el enfoque dp (practiqué dp mucho el día anterior). Mi enfoque de dp fue crear el dp[sum][size] y luego encontrar la solución analizando los valores. El entrevistador me pidió que codificara y lo codifiqué. Luego dijo que hiciste el problema complicado, es un problema fácil. La solución me llegó instantáneamente y nuevamente me pidió que la codificara.
(Quedan 15 minutos ahora.)
Q2. Me explicó el problema. Se le proporciona una array y las únicas operaciones son seleccionar los elementos desde el principio o desde el final. Obtenga el máximo posible usando exactamente las k-operaciones.
Ej: arr = {1, 7, 8, 3, 4, 4}, k = 3
La respuesta sería 1+7+8 = 16.
Nuevamente abordé el problema usando dp: P. Le dije la relación de recurrencia dp[i][j][k] = max(arr[i] + dp[i+1][j][k-1], arr[j] + dp[i][j -1][k-1]). Estuvo de acuerdo y me pidió que ideara un enfoque optimizado. Me tomó como 2 minutos pero no pude encontrar nada. Me sugirió que pensara en usar la propiedad. Entendí la pista y obtuve la solución, es decir, solo podemos seleccionar elementos continuos desde la izquierda o desde la derecha. La respuesta es un máximo de (izquierda[x] + derecha[kx]) para 0 <= x <= k.
Ronda 2 (1 hora):
Esperaba que esta ronda volviera a ser una ronda de codificación. Pero para mi sorpresa, se trataba de una ronda de diseño. Luego me preguntó si estaba familiarizado con RDMS y MySQL. Ya estaba nervioso porque no soy tan bueno con las bases de datos. Luego describió el enunciado del problema:
Necesitas diseñar un sitio de blog con propiedades dadas:
1. El usuario puede crear un blog (que contiene varios párrafos).
2. El usuario puede ver todos sus blogs.
3. El usuario puede agregar comentarios (comentarios múltiples a cada párrafo en un blog).
Era más o menos así (olvidé un último punto). Tuve que hacer el modelado de datos. Luego me pidió que le diera el esquema de las funciones para realizar las operaciones anteriores. Solo tuve que escribir el nombre de la función, los parámetros y el valor devuelto (no la consulta ni el pseudocódigo 🙂). Y luego hizo algunas optimizaciones como la opción de vistas paginadas. Para obtener la página siguiente de manera eficiente y sin usar operaciones de escritura en la base de datos.
Ronda 3 (3.5 horas):
Esta fue la ronda más única y más larga que he presenciado. El entrevistador primero me pidió que me presentara y le contara sobre mi experiencia de pasantía en Nutanix. Luego me dio el siguiente enunciado del problema de una simulación de un juego de cartas. Me pidió que implementara el juego de cartas. Le pregunté si quería que usara OOP y asintió. Como no tengo mucha experiencia escribiendo el código usando OOP (no me juzguen: P), le dije que podría llevar algún tiempo. Dijo que está bien y que me envía un ping cada vez que haya terminado con el código y desconectó la llamada. Lo llamé dos veces para mostrarle solo la salida incorrecta. Me dio la última oportunidad de mostrarle el resultado correcto y finalmente funcionó como se esperaba. Era un código de alrededor de 400 líneas y parecía bastante convencido y también discutimos sobre las diferentes estrategias que podrían haberse utilizado. Primero vio la salida y luego revisó todo el código.
Fui seleccionado en esta ronda también.
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