********** Entrevista técnica de Goldman Sachs (para contratación con experiencia) **********
(diciembre de 2018 – enero de 2019)
—————————————— ————————————
———————————————————
**** Test HackerRank – 90 minutos – 2 preguntas ****
——————————————— ————
1) Cuenta núm. de subarreglos que se suman a una suma dada
Ejemplos:-
Entrada: arr[] = {10, 2, -2, -20, 10},
k = -10
Salida: 3
Subarreglos: arr[0…3], arr [1…4], arr[3..4] tienen una suma exactamente igual a -10.
Entrada: arr[] = {9, 4, 20, 3, 10, 5},
k = 33
Salida: 2
subarreglos: arr[0…2], arr[2…4] tienen una suma exactamente igual a 33.
2) Un viajero visita varias ciudades. Puede trabajar todos los días y ganar algo de dinero. También gasta algo de dinero en cada día. Se proporciona una array que representa sus ahorros diarios (ganancias – gastos) en el transcurso de su viaje. Con cuánto dinero mínimo debe comenzar para tener al menos algo de ahorro (> 0) al final de cada día.
Ejemplos:-
Entrada: arr[] = { 10, -5, 7, -8, 5, -9 }
Digamos que comienza con x.
Al final de:-
Día 1, tiene un ahorro de (x + 10)
Día 2, tiene un ahorro de (x + 5)
Día 3, tiene un ahorro de (x + 12)
Día 4, tiene un ahorro de (x + 4)
Día 5, tiene un ahorro de (x + 9)
Día 6, tiene un ahorro de (x + 0)
Entonces, el valor mínimo de x para satisfacer la condición dada es 1 (uno ).
———————————————————
**** Coderpad Ronda 1 ****
———————————————————
1 )
Escriba una función que tome entrada y salida como se muestra a continuación:-
Entrada (string) Salida (string)
—– ——
aaa a3
aabbcc a2b2c2
aaabcdd a3b1c1d2
a a1
2)
a) Eres un ávido coleccionista de rocas que vive en el sur de California. Algunas rocas raras y deseables acaban de estar disponibles en Nueva York, por lo que está planeando un viaje por carretera a través del país. Hay varias otras rocas raras que podrías recoger en el camino. Se le ha dado una cuadrícula llena de números, que representan la cantidad de rocas raras disponibles en varias ciudades del país. Tu objetivo es encontrar la ruta óptima desde So_Cal hasta New_York que te permita acumular la mayor cantidad de rocas en el camino.
Nota: solo puedes viajar al norte (arriba) o al este (derecha).
b) Considere agregar algunas pruebas adicionales en doTestsPass().
c) Implemente la ruta óptima() correctamente.
d) Aquí hay un ejemplo:
^
{{0, 0, 0, 0, 5}, New_York (fin) N
{0, 1, 1, 1, 0},
So_Cal (inicio) {2, 0, 0, 0 , 0}} S
v
El total de este ejemplo sería 10 (2+0+1+1+1+0+5).
———————————————————
**** Coderpad Ronda 2 ****
———————————————————
1 )
Dada una string. Escribe una función para encontrar el primer carácter que no se repite en ella. Si no hay ningún carácter que no se repita, devuelva 0;
por ejemplo
, Entrada (string) Salida (char)
—– ——
aabbccd d
abbccddee a
iijjkkllmm 0
2)
Implemente una función que tome dos enteros sin signo como argumentos, a saber, numerador y denominador, y genere una string que represente la fracción en forma decimal. Si hay un dígito repetido y no terminador que aparece en la forma decimal, escríbalo entre paréntesis.
por ejemplo
, Entrada (UINT n, UINT d) Salida (string)
—– ——
2, 5 0,4
1, 2 0,5
1, 3 0.(3)
12, 5 2,4
11, 20 0,55
5, 3 1.(6)
———————————————————
**** Presencial Rondas en Súper día ****
————————————————— ——
——————–
Ronda 1
——————–
1. Dado un número, encuentre el valor mínimo de su raíz cúbica de la manera más óptima. El número puede ser bastante grande.
2. Dada una array de números enteros del 1 al N donde falta 1 número. Encuentra ese número. En la misma array, además de un número faltante, también hay un número repetido. Encuentra eso.
3. Ordene una array de 0 y 1. No opte por la clasificación N log N normal. Use el hecho de que la array solo tiene 0 y 1.
La misma pregunta para una array que contiene 0, 1 y 2.
——————–
Ronda 2
——————– Cuenta
rápidamente tu experiencia laboral.
¿Por qué quiere cambiar de su empresa actual?
1. Dada una array (M × N) de 0 y 1 con todas las filas ordenadas. Encuentre el primero en forma de columna de la manera más eficiente.
2. Dada una recta numérica infinita (de -INF a +INF)
, una persona comienza desde cero e inicialmente tiene un tamaño de paso de 1. Después de cada paso, el tamaño de paso aumenta en 1. Por ejemplo, de 0, puede ir a 1 o -1 con un tamaño de paso de 1. De 1 puede ir a -1 o 3 ya que el tamaño de paso se ha convertido ahora en 2 y así sucesivamente.
Encuentre el número mínimo de pasos para llegar a un número dado N.
3. Un flujo de datos binarios. Implemente una estructura de datos para contener un máximo de 100 de estos datos que se agregaron recientemente. Si la estructura de datos está llena, elimine los datos más antiguos. En cualquier momento, el usuario debería poder obtener el número de 1s.
4. Implementar caché LRU.
——————–
Ronda 3
——————– Cuenta
rápidamente tu experiencia laboral.
¿Por qué quiere cambiar de su empresa actual?
1. Explique el patrón Singleton. ¿Cómo evitará los problemas de concurrencia?
2. Hay dos procesos ejecutándose en dos hosts diferentes. Describa un mecanismo mediante el cual puedan interactuar y compartir datos entre ellos sin tener una fuerte dependencia entre ellos.
3. Considere una estación con solo 1 plataforma. Describa un mecanismo para asignar plataforma a los trenes entrantes. Puede haber retrasos imprevistos en la salida de un tren del andén por múltiples motivos.
4. Implementar y explicar la cola de bloqueo (pseudocódigo)
——————–
Ronda 4
——————–
Varias preguntas sobre el proyecto actual y la forma de trabajar. ¿Cómo mides la calidad? ¿Qué prácticas sigue durante el ciclo de vida del desarrollo de software? Muchos de los por qué de esta manera y no de esa manera escriben preguntas relacionadas con el proyecto actual.
——————–
Ronda 5
——————– Guíanos
rápidamente a través de tu currículum y cuéntanos algo sobre tu proyecto actual.
¿Por qué quiere cambiar de su empresa actual (o cambiar su dominio de trabajo?)
1. Hay un idioma que contiene digamos a, b, c, d….n del alfabeto inglés pero el orden puede ser diferente.
Dado un diccionario de este idioma que tiene palabras ordenadas. ¿Cómo averiguarás el orden de los alfabetos en este idioma?
2. Implemente una estructura de datos de pila que proporcione una función GetMin() que siempre devuelva el elemento mínimo existente en la pila en O(1). (Escribir el código en papel)
3. Dada una serie de precios de acciones en diferentes intervalos de tiempo. Compra y vende acciones para maximizar las ganancias.
a) puede comprar y vender una vez
b) puede comprar y vender varias veces
——————–
Ronda 6
——————–
1. Implemente una estructura de datos que pueda almacenar un flujo entrante de enteros y pueda devolver el elemento mínimo hasta el momento en cualquier momento en O(1).
2. Dado el número total de pasos a dar y una lista de posibles pasos más pequeños. Número de formas de dar los pasos totales dados usando pasos más pequeños. (Esto es similar al problema de cambio de moneda que puede resolverse mediante Programación Dinámica),
por ejemplo, N = 4 y pasos más pequeños = {1, 2, 3}
entonces el número de formas de dar 4 pasos usando {1, 2, 3} es 7
[ (1, 1, 1, 1), (1, 1, 2), (1, 2, 1), (2, 1, 1), (1, 3), (3, 1), (2, 2) ) ]
——————–
Ronda 7
——————–
Discusión con el Team Manager. Preguntas y respuestas sobre el puesto de trabajo o Goldman Sachs en general.
¿Qué sabes de Goldman Sachs?
¿Por qué quiere unirse a Goldman Sachs?
——————–
——————–
Ronda Bluejeans (videoconferencia) – 1
(Con equipos en Londres y Nueva York)
——————–
¿Cómo detectar un ciclo en una lista enlazada?
Preguntas sobre el manejo de problemas de concurrencia, uso de mutex y preguntas relacionadas.
Preguntas sobre su trabajo actual.
——————–
Ronda de Bluejeans (videoconferencia) – 2
(Con otro equipo en Nueva York)
——————–
Dada una array de enteros y un número ‘suma’, encuentre el número de pares de enteros en la array cuya suma es igual a ‘suma’.
Algunas preguntas de comportamiento como «¿Cuál es un trabajo/empresa ideal para ti?»
——————–
Discusión final con el gerente de contratación. Esto fue más como una discusión que una entrevista.
Se hicieron algunas preguntas técnicas sobre la experiencia con la programación funcional.
El proceso general tomó más de 2 meses. Durante las rondas, el departamento de recursos humanos nunca tuvo una palabra conmigo sobre la compensación. Después de pasar por todos los procesos anteriores, me dijeron «SÍ» y el departamento de recursos humanos me pidió los detalles de mi salario actual/recibos de pago para hacer una oferta final. Pero eventualmente, llegaron con un número que apenas alcanzaba mi compensación actual, olvídate de una subida que uno esperaría de un nuevo trabajo. Al preguntar, Recursos Humanos me dijo que los salarios para un perfil de estratos son diferentes. Esto es contrario al gerente del equipo que mencionó durante la ronda 7 que los salarios tanto para el equipo de estrategia como para el equipo de tecnología son similares cuando le pregunté las diferencias entre las responsabilidades diarias en un rol de estrategia y un rol de tecnología. Eventualmente, decidí dejar ir su oferta debido a una compensación. Esto fue decepcionante ya que GS tiene una imagen en el mercado de ser bueno con la compensación. Lo que es peor es que nunca preguntaron ningún detalle de salario al comienzo del proceso y solo después de este gigantesco proceso de entrevista.
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