DE Shaw realizó una campaña de reclutamiento en el campus de mi universidad para el puesto de pasante de QTE (2 meses) en julio de 2021.
Hubo tres rondas para el proceso de selección:
Ronda 1 (Prueba técnica: 95 minutos en HackerRank): hubo un total de tres secciones en esta prueba.
- La primera sección constaba de 14 Aptitude MCQs de nivel de dificultad fácil a medio para completarse en 28 minutos.
- La segunda sección se compone de 12 MCQ técnicas relacionadas con la búsqueda de errores en la lógica de los códigos C++, adivinar el resultado de las preguntas del código, DBMS, SQL y conceptos relacionados que se completarán en 17 minutos.
- La tercera era una sección de codificación que tenía dos preguntas de codificación, con 20 minutos y 30 minutos para la primera y la segunda pregunta respectivamente. Las dos preguntas eran: (i) Dada una array de n enteros, puede dividir la array en secciones que contengan k elementos cada una (n es divisible por k). La puntuación de cada sección es el producto de los elementos de esa sección. Encuentra la suma máxima de puntajes de todas las secciones que puedes lograr. (Codicioso) (ii) Dado que tiene tres elementos A, B y C, debe ponerlos en un orden particular de modo que no haya tres elementos iguales consecutivos. Dadas n consultas de la forma (a, b, c) donde a, b y c son la cantidad de artículos A, B y C que tiene, encuentre la cantidad máxima de artículos A, B y C que puede pedir siguiendo la restricción anterior. (Matemáticas, las restricciones eran bajas)
Ronda 2 (Entrevista técnica Ronda 1-60 minutos sobre el par de códigos de rango de pirata informático): hubo dos entrevistadores, quienes se presentaron y hablaron sobre su trabajo en la empresa. Después de esto, pidieron mi presentación. El resumen de las preguntas formuladas es:
- https://www.geeksforgeeks.org/maximum-profit-by-buying-and-selling-a-share-at-most-twice/ . Primero me pidió que explicara mi enfoque y, cuando estuvo satisfecho con él, me pidió que escribiera un código para eso y lo verificó en dos casos de prueba.
- Se hicieron dos acertijos: (i) Hay dos semáforos entre su casa y su oficina. Mientras va de su casa a la oficina, se detiene dos veces, pero al regresar a casa de la oficina se detiene solo una vez. Dado que los semáforos siempre están en rojo cada vez que los encuentra, ¿cómo es posible esta situación? Me pidió que dibujara y explicara mi solución correctamente. (Sugerencia: no necesita detenerse en un semáforo cuando necesita girar a la izquierda). (ii) Hay un edificio de 100 pisos y tienes un huevo. Debe encontrar el piso más bajo desde el cual el huevo se rompe al caer. (La única solución es donde tiramos el huevo comenzando desde el piso más bajo y subiendo hasta que se rompe, esto no se puede optimizar más ya que solo tenemos un huevo).
- Dada una lista vinculada y un Node, ¿cómo eliminará ese Node de la lista vinculada? Me pidió que explicara mi enfoque cuando tenía un puntero al inicio de la lista vinculada, así como cuando solo tenía el puntero al Node que se eliminaría.
- Qué estructura de datos se puede usar para implementar LRU Cache.
- Dado un número entero n, puede realizar las siguientes dos operaciones cualquier número de veces: (i) disminuir n en 1 o (ii) dividir n por cualquiera de sus factores excepto por uno mismo. Encuentre el número mínimo de operaciones para convertir n en 0.
Ronda 3 (Entrevista técnica Ronda 2-60 minutos en el par de códigos HackerRank): hubo dos entrevistadores nuevamente. Comenzaron pidiendo mi presentación y cuáles eran mis aspiraciones, y cómo se alineaba con el puesto de pasante de QTE que están ofreciendo. El resumen de las otras preguntas es:
- https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/. Quería la solución de dos puntos de complejidad de tiempo O(n) y espacio O(1) y me pidió que escribiera el código después de que terminé de explicar mi enfoque y me pidió que verificara el código en diferentes casos de prueba por mí mismo.
- https://www.geeksforgeeks.org/next-greater-element/ . Me pidió que ejecutara en seco mi enfoque de pila en dos casos de prueba.
- https://www.geeksforgeeks.org/sliding-window-maximum-maximum-of-all-subarrays-of-size-k/ . Le di un enfoque de conjuntos múltiples, pero él quería un enfoque más rápido y me dio una pista para usar una pila.
- Dado un árbol binario, primero imprima su vista del lado izquierdo y luego su vista del lado derecho. Imprima el Node raíz solo una vez. Solo quería las complejidades del enfoque y el tiempo y me pidió que probara mi enfoque y lo explicara en detalle para dos casos de prueba.
- Se le proporciona una función getManager(int id) que devuelve el administrador del empleado cuya identificación se pasa. Debe implementar una función getCManager (int id1, int id2) que debería devolver el administrador común más bajo de los dos empleados cuya identificación se pasa. No se le proporciona la estructura de árbol real, solo la función getManager. Mi enfoque fue que podríamos hacer un pseudo árbol y realizar LCA en él para estos dos empleados, pero él quería un mejor enfoque. A continuación, sugerí usar un conjunto_desordenado para almacenar todos los gerentes de uno de los empleados y luego verificar si los gerentes consecutivos del otro empleado están en el conjunto.
Veredicto – Seleccionado
Después de cada ronda, puede hacer cualquier pregunta que pueda tener a los entrevistadores.
¡Mis mejores deseos!
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