Experiencia de entrevista de Arcesio | Conjunto 11 (En el campus para prácticas)

Arcesium vino al COEP para Prácticas Entrevistas el 27 de julio de 2018
Total Prueba en línea + 5 rondas

Prueba en línea:
tuvo un total de 80 minutos y se realizó en la plataforma de par de códigos de hacker Rank.
El apartado se dividió en 3 partes,
1 Aptitud Cuantitativa 15 20
2 Aptitud Técnica 15 15
3 Prueba de Programación 1 1 15
4 Prueba de Programación 2 1 30

Cada pregunta tenía el mismo peso (dijeron en la entrevista)
No había barrera de tiempo en ninguna sección y tenías la libertad de saltar de una sección a otra.

*Cada respuesta incorrecta en las Secciones 1 y 2 recibió una calificación negativa del 25 % de la puntuación de esa pregunta y cada pregunta tiene cuatro opciones con una sola respuesta correcta.

El Cuantitativo tenía Preguntas realmente buenas y fue difícil para la mayoría de nosotros, el técnico fue más sobre Preguntas orientadas a objetos
en Java y C++ con pocas preguntas relacionadas con lo básico de C, pila, Árbol de búsqueda binaria. El técnico fue decentemente fácil si eres bueno en programación orientada a objetos (se dieron 5-6 fragmentos de código y tuvimos que marcar la respuesta adecuada).

Llegando a la sección Código.
1. Hay un río de N unidades y hay K piedras al otro lado del río, cada piedra estará en una de las N unidades. Comenzando desde la ubicación 0, su primer salto siempre será de 1 unidad (considere el salto anterior como L unidades), ahora su próximo salto posterior puede ser L + 1 o L – 1. Tenga en cuenta que pueden faltar algunos de los stoes.
Tienes que generar la suma del cuadrado de Jump que tomarás de cada piedra.
(El ejemplo lo aclarará) por ejemplo, deje que
el río sea de N = 5 unidades y hay 4 piedras colocadas que se muestran en una array
[0, 1, 3, 4]
Solución:
1. El primer salto de 0-1 siempre es fijo que será 1 Unidad.
2. Ahora para el próximo salto tienes 2 opciones L+1 = 2 o L-1 = 0, tenemos que avanzar desde cada ubicación para que no sea lo que queremos, así que comprobaremos si la ubicación actual es 1 + salto (L+1), es decir, 1+2 = 3 está en la array o no, si es así, damos un salto
3. Ahora desde 3 tenemos 2 opciones (como el último salto fue 2, podemos saltar 2+1 o 2-1 para llegar a la siguiente piedra)
2-1 = 1 nos hará llegar a la última piedra 4 que queremos

Ahora tenemos que generar la suma del cuadrado de los saltos tomados en cada ubicación
0 ^ 2 + 1 ^ 2 + 2 ^ 2 + 1 ^ 2 = 6
Entonces, si es posible llegar a la última piedra, genera 6; de lo contrario, genera -1

La solución real es usar DP, pero probé la forma Greedy (no pude pasar todos los casos de prueba)
Era un 90% similar a este problema: http://www.dsalgo.com/2016/01/jumping-frog-problem.html

2. Te han dado un tablero de ajedrez y había peones negros en el tablero (representados por 1). Tienes que poner tu peón blanco en todas las posiciones posibles donde pueda estar y calcular cuántas muertes son posibles de cada uno. ubicación y resúmalo. Solo puedes moverte en línea recta (x + 1, y) y para un movimiento diagonal mortal (x + 1, y + 1) y (x + 1, y-1),
por ejemplo, 3 * 3

0 0 0
0 1 0
1 1 1
-Primera fila desde la 1ra posición (0, 0) => 2 bajas, 2da posición (0, 1) => 0 bajas, 3ra posición (0, 2) => 2
bajas -Segunda fila, desde 1ra posición (1, 0) => 1 muerte, 2da posición (1, 1) => No es posible, 3ra posición (1, 2)=> 1 muerte
-Tercera fila no es posible colocar ya que todas son 1
En cada paso, debe maximizar las muertes
. El resultado de la pregunta anterior es: 6:
no tuve tiempo de resolver esto, incluso no leí la pregunta correctamente
. El enlace es al código de mi amigo para el mismo problema usando DP: https: // ide.geeksforgeeks.org/tf745kHTQI

Se anunciaron los resultados e inicialmente tomaron 10, pero luego agregaron más 4
Entonces, de más de 160 estudiantes, seleccionaron 14 para la próxima ronda.

Primera ronda:
esta fue una ronda técnica, había 2 entrevistadores diferentes para cada ronda técnica.
Me preguntaron sobre mí, luego miraron mi currículum y me preguntaron si sabía PHP. Dije que sí, luego preguntaron
¿Qué es var_dump? Respondí
algunas preguntas básicas, luego me preguntaron si sabes Java (dije que han pasado 2 años desde que no he codificado).
Así que el tipo genial dijo: veamos cuánto se te olvidó.
-Preguntó qué son las interfaces
-Por qué usar interfaces cuando puedes hacer la declaración dentro de la clase misma donde tienes que usarla (dio un ejemplo pero no estaba convencido)
Algunas preguntas más sobre Java y luego preguntó en qué lenguajes codificas la mayoría, dije C, C++, Python
Luego, algunas preguntas sobre C++
– ¿Qué es la memoria virtual?
-Qué es el polimorfismo
-Por qué se llama tiempo de ejecución (habló sobre Vptr y Vtable estaba satisfecho) -Cómo se ejecuta
C++/C (expliqué todas las fases del ciclo Preprocesamiento/Compilación/Ensamblaje/enlace)
-Luego preguntó cómo funciona el compilador sabe dónde está almacenado su int xyz
-Qué sucede realmente al vincular y cargar (informado sobre la tabla de vinculación)
-Preguntado sobre dónde están los archivos de objetos cuando realiza todo el proceso (informado sobre -save-temps)
y algunas preguntas más ninguna de las preguntas eran sencillas pero formuladas de una manera complicada, luego se
movieron hacia el árbol,
– ¿Conoce la estructura de datos del árbol?

-Si se da un recorrido en orden con otro recorrido, siempre puede hacer BST => Sí
-Me preguntaron sobre el problema del ancestro común -https://www.geeksforgeeks.org/lowest-common-ancestor-in-a-binary-search- árbol/
Intenté muchos enfoques ineficientes diferentes, pero siempre pidieron probar más, probé el enfoque 2-3 y luego pasaron a las siguientes preguntas,
algunas preguntas más de creación de lógica, no recuerdo todas.
Luego, nuevamente cambió a Java
: ¿sabes singleton? clase – No, explicaron
– ¿Cómo puede restringir la clase para hacer solo un objeto?
– Expliqué el concepto de ptr único y compartido en C++ y dije que podemos mantener una variable de conteo

-Qué es interbloqueo, explicar interbloqueo.
Luego me preguntaron si conocía DBMS. Dije que sí.
-Escribí una consulta para encontrar el titular del segundo rango en la base de datos de estudiantes. Lo hice usando límite y compensación.
Luego me pidieron hacerlo sin límite y compensación. Usé consultas anidadas.
Preguntaron con qué base de datos está familiarizado. Respondí Mysql y MongoDB
. Preguntaron si hay un parámetro de límite y compensación en otras bases de datos
. Luego le dijeron que había terminado. ¿Tiene alguna pregunta para nosotros?
Pregunté 2-3 (siempre haga un estudio de preguntas sobre la empresa mucho antes de saltar a las entrevistas)

2nd Round –
Más tipo de ronda general para todos, preguntó 2 acertijos a todos
1. Tienes garrafas de 5 litros y 3 litros. Puedes usar cualquier cantidad de agua. No debe usar ningún otro frasco o recipiente. ¿Cómo puedes obtener exactamente 4 litros de agua?
– Respondí y luego me dijo que lo hiciera solo en 4 pasos donde el llenado y la transferencia de agua también se consideran como pasos separados.

2. Era similar a este (Hay 1000 botellas de vino. Una de las botellas contiene vino envenenado. Una rata muere después de una hora de beber el vino envenenado. ¿Cuántas ratas mínimas se necesitan para averiguar qué botella contiene veneno en una hora? .)

Luego preguntó en general cómo estuvo la prueba en línea y todo.

Después de esta ronda, 5 fueron preseleccionados para la siguiente ronda.

Tercera ronda:
ronda técnica nuevamente, me dieron la bienvenida y me hicieron sentir cómodo, me hizo casi 4-5 preguntas de código complejo.
Comenzaron con, cuénteme sobre usted.
-Luego me preguntó qué código resolviste en Online – Respondí y le dije después de la prueba que pude resolverlo usando recursividad y escribí el código.
-No recuerdo alguna pregunta pero la resolví en fuerza bruta trifásica/optimizándola a O(n^2)/ y usé hash para convertirla en O(n), estaba contento
-Qué es hash
-Qué sucede si quiere almacenar el mismo elemento en hash (esperaba saber sobre la colisión y cómo se puede resolver)
-Escribir código para enstringr usando una lista vinculada
-cuál es mejor enstringr o una solución de red abierta para resolver la colisión
-Me preguntó si llamamos usando métodos de clase usando el mismo objeto, entonces, ¿cómo se puede determinar (compilador de Java) a qué objeto se llama? No entendí la pregunta, me explicó dos veces tres veces, pasamos a la siguiente pregunta
: se le da un número y una array, debe encontrar K elementos de la array que se suman al número dado,
por ejemplo. array [2, 3, 1, 5, 9, 7]
k = 2 // elementos exactos necesarios
x = 6 // la suma final debe sumar x
Así que aquí los elementos 1 y 5, que son un total de 2 elementos, suman 6.
Le di fuerza bruta: encontré todo el subconjunto posible, lo agregué y conté la cantidad de elementos. Escribí el código sudo.
Luego le di O (n ^ 2) usando hash, pero aún no estaba convencido
. suma de prefijo (pero estaba mal)
-Me preguntó sobre el árbol segmentado
. Me mantuvo empujando hacia una solución más optimizada. Finalmente lo hizo después de algunas pistas (piense en voz alta si quiere obtener pistas, me ayudó mucho).
-Fue una pregunta más que no recuerdo.
La ronda fue hecho yo estaba feliz ya que casi le daba lo que queria, me pregunto si queria preguntarle algo, le pregunte

4ta Ronda –
Era ronda de RRHH, pregunta básica de RRHH
-Preséntate, lugar donde te quedas, familia, cómo fueron todas las entrevistas, cómo estuvo mi día y muchas más
-pidió un rompecabezas
El Ratón y el Veneno rompecabezas con un giro
hay 30 botellas de vino y 1 está envenenado, encuéntralo usando el número mínimo de ratones, si el ratón muere en 14 horas y tienes 24 horas para detectar qué número de botella está envenenado.
Usé la lógica de los números binarios y respondí 5 como 2^5 = 32, pero él dijo que no es el mínimo,
me rascó el cerebro por un rato, al final se rió y me dijo que me avisara más tarde.
La ronda estaba hecha.
Más tarde busqué en Google y obtuve la respuesta, solo se necesita 1 mouse para encontrar el número de botella.
Lo que tienes que hacer es hacer que el ratón beba vino de cada botella cada 5 minutos, después de 14 horas calcula el tiempo extra que necesita para morir, divídelo entre 5 y obtendrás el número de botella.

(Pensamos que ya estaba hecho, pero no, espera, aquí viene otra ronda técnica)

Después de esta ronda, 3 fueron preseleccionados.

5ta ronda:
esta ronda fue la más desafiante
: se le proporciona la red COEP, tiene 25 teléfonos y cada teléfono debe vincularse estrictamente con otros 7 teléfonos (aplicado a todos) debe encontrar si se proporciona el número de teléfono N y el enlace exacto del teléfono. límite, simplemente devuelva si la red se puede hacer (verdadero) o no (no)
Él dio la pista que yo sabía sobre el grado de Gráfico como indiqué con el gráfico, le expliqué usando el enfoque gráfico y escribí el código Sudo, pero dijo esto se puede hacer en una línea usando la fórmula
Traté de derivar 4-5 fórmulas, cada una de ellas tuvo algún error en el caso de prueba, después de intentar al máximo, pasamos a la siguiente pregunta
-Era una pregunta relacionada con el diseño (no recuerdo cuál era), pero diseñé paso a paso y él me mantuvo presionando hasta que fue la mejor solución posible y optimizada, me pidió que escribiera el código
-Dio un rompecabezas => a mi sobrina le gusta colorear los círculos.
Hay n círculos en cada iteración. Ella colorea los círculos alternativos.
Averigüe el número de círculo que será el último círculo restante sin colorear.
Probé 2-3 combinaciones y adivinó que será algo en potencia de 2. más cercano al número total de círculo => dijo correcto
-Otra pregunta de diseño:
diseño de hoja de cálculo de Excel desde cero
. Empecé con mi enfoque y estaba usando C++, así que usé unordered_map, pero dijo que debería estar en C puro, no use cualquier DS incorporado solo usa arreglos y cosas básicas,
Así que dijo implementar unordered_map en c
Lo hice, luego nos movimos hacia arrays y punteros, almacenamiento contiguo vs vinculado y muchas preguntas relacionadas surgieron rápidamente.
Me pidió que escribiera el código para Malloc.
Finalmente, lo diseñé y él me presionó para hacerlo mejor, al final quedó muy satisfecho.
Escribí 2-3 páginas de código en esta sección de diseño.
Esto fue más de media hora
. Me pidió que escribiera el código para la permutación.
Escribí un código recursivo. Me pidió que repasara el código y dibujara el árbol recursivo para la entrada dada. Hice ambas cosas. .
La ronda duró casi 1.30hrs.

Sí, se hizo toda la ronda. Fue agitado, dimos una entrevista durante casi 6 horas durante todo el día.
Los resultados llegaron después de unos minutos y dieron un discurso formal y anunciaron mi nombre y dijeron que tomaría solo 1, estaba feliz pero triste. también porque mi amigo que estaba conmigo en el top 3 no pudo hacerlo conmigo.
Emocionado de trabajar con la firma por delante. GFG realmente me ayudó.
Saludos y feliz codificación.

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 *