Experiencia de entrevista UHG | En el Campus- 2019

Ronda 1: prueba en línea en la plataforma cocubes que consta de dos secciones.

  1. Aptitud (30 preguntas en 30 minutos): nuevamente, tenía dos subsecciones, lógica, que comprende 20 preguntas y 10 cuantitativas, todas basadas en párrafos.
  2. Sección de codificación: dos preguntas muy fáciles, 30 minutos. Todos recibieron conjuntos diferentes. Algunas de las preguntas fueron:
  • Suma de todos los dígitos de un número hasta que la suma sea de un dígito.(https://www.geeksforgeeks.org/finding-sum-of-digits-of-a-number-until-sum-becomes-single-digit /)
  • Dado un número n, encuentra el número de cartas requeridas para hacer una pirámide de cartas de nivel n.
  • Verificador de contraseña simple con restricciones dadas como al menos una mayúscula, al menos dos números y un carácter especial, etc.
  • Rotación de una lista enlazada en grupos de k. ( https://www.geeksforgeeks.org/rotate-linked-list-block-wise/ ) y algunas otras preguntas simples.

Ronda 2: prueba de codificación con lápiz y papel para resolver problemas, 35 personas fueron preseleccionadas para esta ronda de código con lápiz y papel. Las personas se dividieron en grupos de nueve y fueron llamados grupo por grupo. A cada grupo se le dio una pregunta que era completamente abierta y teníamos que escribir el código en cualquier idioma de nuestra elección. A cada individuo se le dio 45 minutos. las cuatro preguntas eran:

  • Declaración del problema: dada una implementación gráfica como, por ejemplo, Facebook, encuentre el grado mínimo de separación entre dos personas dadas. También se da que el grafo se implementa mediante el uso de listas enlazadas. Las personas que pudieron ver que la pregunta exigía una ruta mínima entre dos Nodes dados en un gráfico representado a través de una lista de adyacencia resolvieron el problema aplicando el algoritmo de Djikstra después de tomar cualquiera de los Nodes dados como fuente.
  • Declaración del problema: encuentre palabras de tendencia en Twitter. Nuevamente, una pregunta muy contundente y abierta que no definió mucho. Querían probar las habilidades analíticas y de codificación, así como el proceso de pensamiento de los estudiantes. Esperaban características como la clasificación de las palabras basada en la frecuencia dando prioridad a las marcas de tiempo (¡eso es lo que son las tendencias, verdad!), eliminar los caracteres especiales como #, $, @, etc., no cuente las palabras comunes como es, am, are, las preposiciones y todo. Dos o más palabras similares, por ejemplo, #metooo y #meeeeeetoooouuuuuu.. se consideran lo mismo y muchas cosas más.
  • Declaración del problema: maximice las ganancias en acciones dado que puede comprar y vender acciones dadas k veces. https://www.geeksforgeeks.org/maximum-profit-by-buying-and-selling-a-share-at-most-k-times/
  • Declaración del problema: Krithika tiene una nueva suscripción principal y ha visto k películas. Ayuda a las personas principales a sugerirle la (k+1) ésima película. Básicamente, diseñar un motor de recomendación personalizado. (¡Obviamente sin usar bibliotecas ML! Querían un código C/C++/Java/Python) Esta es la pregunta que me hicieron. Una vez más, una pregunta muy abierta. Habían venido con planes para interrogarnos y verificar nuestro proceso de pensamiento. La forma en que abordé este problema fue que tomé ambas condiciones para filtrar las películas restantes, que son: 
    • 1. Filtrado basado en elementos: ha visto esta película, por lo que es más probable que vea películas de este tipo. Para esto, había creado una estructura en C++ llamada películas, que contenía diferentes componentes como Género, Calificación, Estudio, una array de Actores, fecha de lanzamiento y una array de struct (Personas) que contenía la lista de personas que habían visto el película.
    •                

    • 2.Filtrado basado en el usuario: las personas que han visto esta película también han visto estas películas. Para la implementación de esta función, creé una estructura de persona que contenía un nombre, edad, nacionalidad, profesión y una serie de películas de estructura que ha visto. Ahora, el proceso fue, para cada una de las películas que vio, primero las comparé con todas las características de cada película presente en la base de datos, que en este momento no es más que una serie de películas, y generé una puntuación de acuerdo con un prioridad asignada arbitrariamente en este momento. Para el filtrado basado en el usuario, para cada una de las películas que ella ha visto, debe haber una serie de personas que también han visto esa película, así que nuevamente, recorra esa serie y luego dentro de esa serie, debe haber una serie de películas que hubiera visto, compárelo con esos y luego genere el puntaje máximo final de todos estos. Finalmente, de todas las puntuaciones generadas se recomienda la película con mayor puntuación.

Ronda 3: Entrevista técnica, después de escribir el código para la última ronda y enviarlo, todos fueron llamados uno por uno y se les pidió que explicaran el código y luego la discusión sobre los proyectos realizados y algunas consultas SQL. En mi caso, había tres personas juntas a las que primero tuve que explicarles mi lógica, luego comenzaron a cuestionar.

  • Ha asignado la prioridad arbitrariamente para generar la puntuación. ¿Qué pasa si esta prioridad es incorrecta para la persona? Si la recomendación es incorrecta, obviamente la persona no verá la película o la dejará en el medio. Entonces, tomemos un límite de tiempo, y si hasta ese momento no se ve la película, se dará prioridad a alguna otra característica y se recomendará alguna otra película y las diferentes características se pondrán en una cola circular. Aparte de esto, todas las películas recomendadas y no vistas deben mantenerse en una variedad de opciones y seguir recomendándolas de vez en cuando. Como darles descanso por ahora, y luego compararlos nuevamente, con las películas de puntaje máximo para recomendar.
  • Aunque ha cubierto muchas características excelentes, para hacerlo, la complejidad del tiempo es O (n 3 ), y para una base de datos tan grande, calcular y mostrar esto dinámicamente será imposible. ¿Cómo vas a mejorar esto? Bueno, a modo de comparación, puedo dividir las películas en diferentes cubos para reducir la exhaustividad y ponerlas en diferentes conjuntos que funcionan en log n para la búsqueda. Así es como los bucles de dos niveles se convierten en log n , lo que reduce la complejidad del tiempo a n(log n ) 2 .

Después de esto, me preguntaron sobre los proyectos que había realizado, uno de ellos era un especialista en redes y ML y mi proyecto era Detección de ataques DDoS (HTTP get y post-flooding, DNS reflexión y amplificación) usando ML. Entonces, en ambas áreas, me comieron crudo.

Ronda 4: Esta fue la entrevista de recursos humanos. Si ha llegado hasta aquí porque la última ronda fue una ronda de eliminación a la parrilla, es muy probable que tenga éxito. Entonces, me hicieron preguntas simples de recursos humanos como por qué deberíamos contratarlo. cuéntame algo que hayas hecho y no esté en el currículum (tuve plétora)., ubicación preferencial, número de hermanos, etc. Entonces, ¿alguna duda? (Consejo: ¡Tenga algunas preguntas para ellos!)

Finalmente, llegó el resultado, fui seleccionado junto con otras 8 personas. Me gustaría agradecer a todos los que me ayudaron, especialmente a GeeksforGeeks y InterviewBit.

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

Deja una respuesta

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