Hubo tres rondas en el proceso de contratación.
Ronda 1 (Codificación):
Consistía en tres preguntas de programación y todos tenían un conjunto diferente de preguntas. Estos son los que he recibido:
- El último dígito distinto de cero del factorial de un número. Encontrar el factorial para valores grandes de n fue costoso en términos de complejidad temporal. Optimicé la solución y borré todos los casos de prueba.
- Node de valor máximo: Node con los datos más pequeños mayores o iguales que el valor clave. Se nos pidió que encontráramos ese Node en un BST. Opté por el enfoque recursivo y borré todos los casos de prueba.
- Diferencia entre la profundidad máxima y mínima desde la raíz de un árbol binario. Nuevamente opté por el enfoque recursivo de encontrar alturas y borré todos los casos de prueba.
Ronda 2 (Técnica I):
La entrevista se realizó por Skype. El reclutador se centró principalmente en las cuestiones de programación y menos en los proyectos:
- Pregunta sobre Trie: cómo encontrar las palabras que terminan con el sufijo ‘-ing’ en un diccionario. No pude responderla completamente y el reclutador pasó a las siguientes preguntas.
- Dada una array inicializada con ceros. Hay consultas basadas en índices- (i, j) y después de cada consulta, los elementos de la i-ésima fila se incrementarán en 1 y lo mismo ocurre con la j-ésima columna. Después de todas las consultas, necesitamos contar la cantidad de números impares en la array. Me acerqué con un enfoque ingenuo que tiene una complejidad O (kxn ^ 2). Pero luego lo optimicé basándome en el hecho de que par+par=par impar+impar=par y sólo el caso de impar+par podría dar un resultado impar.
- Problema de intercambio de monedas: cantidad mínima de monedas (usando el enfoque codicioso) para formar una suma particular.
- Invertir una lista de Me gusta y volver a invertirla para recuperar la lista vinculada original. Lo resolví usando un enfoque recursivo.
- El número de Nodes en un determinado nivel de un árbol binario. Esto se puede resolver fácilmente mediante hashing.
- Breve introducción de proyectos y cuál fue mi papel en los proyectos.
El reclutador me apoyó y la ronda fue muy tranquila. A las preguntas les faltaban muchas partes que el reclutador quería que hiciera y luego siguiera adelante.
Ronda 3 (Técnica II):
La entrevista fue nuevamente por Skype pero esta vez el video del reclutador estaba apagado, lo cual fue confuso al principio pero luego me adapté. Esta ronda se centró por igual tanto en la codificación como en los proyectos.
- Explica tus proyectos, tus habilidades e intereses. La razón detrás de usar la tecnología que había usado, la expliqué en detalle.
- Preguntas sobre las propiedades de Nodejs (Asynchronous, event-driven, threading, etc.), Reactjs (HOC, Lifecycle functions), JSON Format y Javascript Web Tokens que utilicé en mis proyectos. Sabía las respuestas a estas preguntas que dejaron bastante satisfecho al reclutador.
- Fragmento de código sobre la creación de un servidor usando express, que hice en mi editor de texto y compartí la pantalla.
- Dada una array que tiene algunas filas duplicadas. Proporcione los índices de fila similares en la salida. Lo resolví usando hash de las filas con una array de índices. Aunque no pude optimizarlo más, el reclutador explicó la solución usando Trie.
- Varias preguntas de lista enlazada y árbol binario basadas en recursividad (Reversing, Check Mirror, Check Symmetric) que borré fácilmente y expliqué el código sudo con casos de prueba.
- Un problema basado en una lista doblemente enlazada: hay personas continuas que llegan a la cola y deben ingresar a la cola en el lugar al que pertenecen según su altura en orden descendente. Le expliqué la solución y quedó satisfecho con ella.
Luego, el reclutador me preguntó si tenía alguna pregunta, le pregunté sobre las tecnologías en las que está trabajando. El reclutador fue amable e incluso excusó el repentino corte de energía que se produjo durante la entrevista. Fue una gran experiencia de entrevista y bastante esclarecedora. Recibí la información de mi selección unas horas después de mi segunda entrevista. Incluso cuando no estaba seguro de mi solución, me comuniqué con el reclutador sobre mi enfoque y me dio algunos consejos con los que se resolvieron las preguntas.
Publicación traducida automáticamente
Artículo escrito por crystalshine y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA