Prueba técnica:
1. Dada una array que consta de ‘*’ y caracteres, imprima el carácter que tiene el número máximo de estrellas a un lado (incluidos los elementos diagonales también). Si dos caracteres tienen el mismo número máximo, imprima lexicográficamente el más pequeño.
Respuesta: Recorrido simple de la array y verificación de las condiciones.
2. Dada una array de números en el rango (0 – 49) y consultas que tienen un índice inicial y un índice final, busque el elemento máximo para cada consulta.
(Apliqué fuerza bruta simple y obtuve puntaje parcial).
Respuesta: Utilice la estructura de datos del árbol de segmentos o la descomposición de la raíz cuadrada.
Solución alternativa: como tenemos números en el rango de solo (0 – 49), defina un mapa de arrays para cada valor. Para cada valor, almacene índices donde ocurra en la array correspondiente. Para cada consulta, comience de 49 a 0 y verifique si el elemento dado está presente en el rango.
10 preguntas técnicas (estructuras de datos y algoritmos, redes informáticas, DBMS, sistemas operativos)
10 preguntas de aptitud
12 estudiantes fueron preseleccionados para las entrevistas.
Ronda Técnica 1:
Esta ronda se llevó a cabo en una videoconferencia con algunos empleados en la oficina de Hyderabad. Me pidieron que escribiera el código de cada pregunta en el editor.
1. Dada una secuencia continua de strings, encuentre las 10 strings más grandes en cualquier instante. El siguiente enlace será útil.
https://www.geeksforgeeks.org/k-largestor-smallest-elements-in-an-array/
2. Algunas discusiones sobre multiprocesamiento y subprocesos múltiples. Lo cual es eficiente: crear hilos o crear un nuevo proceso. Luego, me pidieron que escribiera un código en hilos.
Se le dan 3 subprocesos y una variable global, digamos conteo = 0. El primer subproceso se usa para aumentar el conteo, el segundo subproceso se usa para disminuir el conteo y el tercer subproceso se usa para imprimir la variable de conteo. Usando la información anterior, imprime el siguiente patrón: 1 2 3 4 5 4 3 2 1
Usé semáforos para restringir el orden de las llamadas de subprocesos e intenté construir la solución, pero no pude escribir el código correcto.
3. Encuentra la K-ésima permutación de una string.
por ejemplo, string = ACBD y k = 0; respuesta – ABCD.
Inicialmente clasifiqué la string y apliqué el algoritmo para encontrar la siguiente permutación de una string dada k veces.
Complejidad: n * log(n) + k * n
Pidieron optimizar la solución que yo no pude.
5 estudiantes fueron seleccionados para la ronda 2.
Ronda técnica 2:
1. Me preguntaron sobre mi proyecto de pasantía en Walmart Labs. Trabajé en middleware, así que me preguntaron qué es middleware y qué trabajo realizaste en todo el proyecto. Siempre trate de responder en su contexto en lugar del contexto del equipo. Como mi proyecto incluía requests http, hicieron algunas preguntas:
- Diferentes tipos de requests http.
- Diferencia entre GET, POST y PUT.
- Encabezado en solicitud HTML: tipo de solicitud, versión Http
- Formato de datos: JSON, tipo de contenido en solicitud html: aplicación/json
2. Dada una array de enteros de tamaño n. Un elemento en el índice i se denomina elemento pico si arr[i – 1] < arr[i] > arr[i + 1] para i en el rango de 1 a n – 1 O arr[i] > arr[i + 1] para i = 0 O arr[i] > arr[i – 1] para i = n – 1;
Encuentre todos los elementos de pico en una array en una complejidad de tiempo inferior a O(n).
Propuse la solución si la array contiene un elemento de pico único como 4 6 8 9 3 2. Luego me dieron una pista: ¿puede aplicar su algoritmo para resolver el problema anterior? Di solución para imprimir cualquiera de los elementos pico.
https://www.geeksforgeeks.org/find-a-peak-in-a-given-array/
Preguntaron si la solución anterior funcionará en todos los escenarios. Respondí que sí porque era compatible con 2 condiciones de borde. Quitaron las condiciones de borde y pidieron una nueva solución. Dije que solo hay una solución O (n) entonces.
3. Escribe una función para dar potencia (x, y).
4. Se le proporciona un procesador con una sola celda de memoria. Recibe un entero (primero 1, luego 2, 3, ……) en cada instante de una máquina. Proponga un algoritmo para el procesador tal que:
Si alguien extrae un número entero del procesador, dará un número entero con la probabilidad de 1 / (número de números enteros que el procesador ha recibido de la máquina), es decir
La máquina pasó 1 al procesador. Si uno extrae un número entero del procesador, debe extraer 1 con probabilidad 1.
La máquina pasa 2 al procesador ahora. Si uno extrae, debe extraer 1 con probabilidad 1/2 y 2 con probabilidad 1/2
La máquina pasa 3. 1 con probabilidad 1/3, 2 con 1/3, 3 con 1/3.
Tenga en cuenta que solo tiene una celda de memoria, por lo que puede almacenar como máximo 1 número entero.
Les di un acercamiento. Estaban bastante satisfechos con él.
5. Problema de la celebridad (resuelto usando stack)
https://www.geeksforgeeks.org/the-celebrity-problem/
Ronda de recursos humanos:
Cuéntame algo sobre ti y la discusión se prolongó durante unos 10 o 15 minutos.
Ronda Técnica 4:
1. Preguntas sobre middleware (mi proyecto de pasantía), por qué usar middleware no podemos realizar la misma tarea usando frontend y backend, por qué agregar innecesariamente una capa más.
2. Diferencia entre TCP y UDP. ¿Cómo implementará UDP con todos los servicios proporcionados por TCP?
Respuesta: Podemos implementar servicios TCP en la capa de aplicación antes para poder aplicar servicios UDP más adelante en la capa de transporte. Establezca una conexión confiable antes desde ambos extremos utilizando la propia capa de aplicación.
3. Dada una tabla de productos con 3 columnas product_id, product_type y country. Se realiza una consulta –
Seleccione * de productos donde país = «India».
Tomará O(n) tiempo. Intenta optimizar esto.
Respuesta: Usé conceptos de B+ Trees e indexación con B+ Trees.
4. Discusión sobre conceptos del sistema operativo como el intercambio, la paginación por demanda, cómo el sistema operativo selecciona un marco deseable (proceso completo de respuesta de la tabla de página, falla de página, marco de víctima, algoritmo de reemplazo de página, bits en la tabla de página como modificado, lectura/escritura, etc.)
5. Tiene muchos archivos de 6 GB, cada uno con un flujo de números enteros. Le quedan 4 GB de espacio en su memoria principal (principalmente para intercambiar, intercambiar). Debe almacenar la secuencia ordenada de enteros en todos los archivos en otro archivo de salida. ¿Cómo lo harás?
Di soluciones incorrectas y luego me rendí.
6. Problema del agua de lluvia atrapada
https://www.geeksforgeeks.org/trapping-rain-water/
Prepárese para sus proyectos lo suficientemente bien y trate de darles un mensaje de que ha realizado una cantidad significativa de trabajo en el proyecto.
Al final de cada ronda, te preguntan si tienes alguna duda. Debes preparar algunas buenas preguntas. Siempre da una buena impresió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