Experiencia de entrevista de Samsung para prácticas (SRI-B)

Ronda de codificación: había 3 preguntas para resolver en 70 minutos.

  1. Se le proporciona una array 2D y debe ordenar la array por filas.
  2. Se le proporciona un árbol binario y debe reemplazar el valor de los datos de todos los Nodes con la suma de los datos de su subárbol, excluyendo el Node en sí.
  3. Una empresa (digamos Samsung) necesita algunos empleados para mantener su negocio. Debido a los altibajos en los negocios, la cantidad de empleados requeridos cambia cada mes. Se le proporciona una array A[] de longitud N donde cada i [1, N] representa el número mínimo de empleados necesarios en el i-ésimo mes. La empresa puede contratar a algunos empleados con costo CONTRATAR y despedir a algunos empleados con indemnización por despido S. SALARIO es el salario de los empleados en cada mes.

Ahora debe encontrar el COSTE MÍNIMO PARA LA EMPRESA para que la empresa pueda funcionar durante N meses. Inicialmente, la Compañía tiene 0 empleados.

Se dan restricciones:

1 <= A[i] <= 41

Muestra:

Input: A[] = {10, 5, 6, 2}
       HIRE = 10
       S = 15
       SALARY = 10
Output:440
Explanation:
Month 1 : hire 10 employee cost till now (10+10)×10 = 200
Month 2 : fire 4 employee cost till now 200 + 4×15 + 6×10 = 320
Month 3 : no hire no fire cost till now = 320 + 6×10 = 380
Month 4 : no hire no fire cost till now = 380 + 60 = 440
Thus, minimum cost to company = 440

Sugerencia: solo fuerza bruta en todos los casos posibles.

Había resuelto los tres problemas. Para el primer problema, dado que no se dieron restricciones, solo hice fuerza bruta en O (N ^ 3).

Ronda 1 (Entrevista personal): El entrevistador me pidió que me presentara y luego me pidió que explicara mis proyectos. Luego hizo una pregunta de codificación.

Pregunta de codificación:

  1. Se le da un número natural N (N <= 1e8) y una array de M enteros A. Tiene que encontrar cuántos números del 1 al N (ambos inclusive) son divisibles por cualquiera de los elementos de la array.

    Enfoque de solución : iterar sobre todos los subconjuntos de la array. Si hay un número impar de elementos en el subconjunto, agregue su contribución, de lo contrario, reste (principio de inclusión-exclusión).

    (Tuve que escribir código para esta solución)

  2. Esto era sólo una extensión del problema anterior. Se le da una array de M elementos, tiene que encontrar el K-ésimo elemento que es divisible por cualquiera de los elementos de la array.

    Enfoque de solución : Igual que el anterior. Simplemente haga una búsqueda binaria sobre los números para encontrar el elemento K-th.

Luego, el entrevistador hizo algunas preguntas más orientadas a C/C++.

  1. ¿Qué es la función de avance en C++?
  2. ¿Qué son los tipos de datos derivados en C?

(No pude responder a las dos preguntas anteriores, pero resolví las preguntas de codificación)

Ronda 2 (Entrevista personal): Me preguntó por qué había usado MongoDB (Ventaja de MongoDB sobre MySQL). Luego hizo una pregunta de codificación.

  • Se le dan N strings. Tienes que encontrar 100 strings que hayan ocurrido la mayor cantidad de veces.

Sugerencia: la mejor solución es usar trie y min-heap.

Le había dado 3 enfoques.

  • Primer enfoque: acaba de aplicar la fuerza bruta.
  • Segundo enfoque: la comparación de las strings se puede realizar utilizando Hashing, solo una mejora del primer enfoque.
  • Tercer enfoque: uso de la estructura de datos Trie.

Estaba bastante satisfecho conmigo.

Consejos: La codificación ayuda mucho. Hacer programación Competitiva en codeforces y codechef me ayudó MÁS en la selección.

Publicación traducida automáticamente

Artículo escrito por dnpshuser y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *