¿Cuáles son algunos acertijos interesantes que se hacen en las entrevistas técnicas de programación informática?

  • # 1 Escriba un programa en C eficiente para contar el número de bits establecidos en un entero sin signo.

i / p o / p
==== ===
0 (00) 0
1 (01) 1
2 (10) 1
3 (11) 2
… .. …

  • # 2 Dada una cadena s1 y una cadena s2, ¿escribe un fragmento para decir si s2 es una rotación de s1 usando solo una llamada a la rutina strstr?
    (por ejemplo, dado s1 = ABCD y s2 = CDAB, devuelve verdadero,
    dado s1 = ABCD, y s2 = ACBD, devuelve falso)
  • # 3 ¿Cuál es la para que el siguiente fragmento de código imprima tanto HelloWorld

    if()
    printf ("Hello");
    else
    printf("World");

  • # 4. Cambie / agregue solo un carácter para que el siguiente programa imprima * exactamente 20 veces. (Hay al menos 3 soluciones a este problema).

int main()
{
int i, n = 20;
for (i = 0; i < n; i--)
printf("*");
return 0;
}

  • # 5. Describa un algoritmo para invertir las palabras en una cadena; por ejemplo “Mi

se llama Amit Agarwal “se convierte en” Agarwal Amit se llama My “.

  • # 6. Hay un edificio de 100 pisos y te dan dos huevos. Los huevos tienen una propiedad interesante que si arroja el huevo desde un número de piso <x, no se romperá, y siempre se romperá si el número de piso es ≥ x. Suponiendo que puede reutilizar los huevos que no se rompieron, proporcione un algoritmo para encontrar x en un número mínimo de lanzamientos.
  • # 7. En C, no es posible copiar la matriz de la siguiente manera:

int a[10],b[10];
a = b;
a = GetAnArrayOfTenElements();

¿Se te ocurre un truco simple que te permita obtener este efecto?

  • # 8. La distancia entre las ciudades A y B es de 1000 km. Tenemos 3000 plátanos en la ciudad A, y un elefante que puede transportar como máximo 1000 plátanos a la vez. El elefante debe comer una banana cada 1 km; no puede ir más lejos si se queda sin el suministro de banano. ¿Cuál es el número máximo de bananas que se pueden transferir a la ciudad B?
  • # 9. Dado un tablero de ajedrez 8 × 8, calcule:

• El número de subcuadrados en el tablero.
• El número de subrectangles en el tablero.
Tenga en cuenta que los rectángulos están restringidos a tener diferentes anchuras y alturas.

  • # 10. Un hombre tiene dos cubos en su escritorio. Todos los días organiza ambos cubos para que las caras frontales muestren el día actual del mes. ¿Qué números hay en las caras de los cubos para permitir esto?
  • # 11. Dado 6 fósforos de igual longitud, se le pide que forme 4 triángulos equiláteros. No está permitido romper, partir o doblar los palos.
  • # 12. Dadas 13 bolas, ¿cómo las organizarías en 9 líneas, de modo que haya 4 bolas en cada línea? Puede suponer que las líneas están dispuestas en un espacio 2D y que una bola no se puede colocar encima de otra bola.
    Bonificación: si te parece demasiado fácil y tienes mucho tiempo para matar, ¿qué tal si organizas 22 bolas en 21 líneas de 4?
  • # 13. Un esquiador debe decidir cada día que va a esquiar si alquilar o comprar esquís, a menos o hasta que decida comprarlos. El esquiador no sabe cuántos días irá a esquiar antes de cansarse de este pasatiempo. Sugiera una estrategia para el esquiador minimizando su costo, dado que el costo del alquiler es de 1 unidad, y el costo para comprar los esquís es B unidades donde B >> 1.
  • # 14. Si dos de las siguientes afirmaciones son falsas, ¿qué posibilidades hay de que el huevo haya sido el primero?

1. El pollo vino primero.
2. El huevo vino primero.
3. La declaración I es falsa y la declaración II es verdadera.

  • #15. Estás viajando en las selvas de África, cuando eres atrapado por una tribu de bárbaros. Te permiten elegir entre la muerte o resolver su gran desafío:
    Le vendan los ojos y lo llevan a una habitación, donde le piden que se arrodille. Sientes cientos de discos circulares frente a ti. Le dicen que un lado de cada disco está pintado de rojo y el otro de verde. Hay exactamente 129 discos que actualmente tienen el lado rojo hacia arriba. Debe dividir los discos en dos grupos, de modo que cada grupo tenga la misma cantidad de discos que muestren el color rojo. Obviamente, no se permite mirar a escondidas.
  • #dieciséis. El resultado esperado del siguiente programa en C es imprimir los elementos en la matriz. Pero cuando realmente se ejecuta, no lo hace.

    #include
    #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
    int array[] = {23,34,12,17,204,99,16};
    int main()
    {
    int d;
    for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
    printf("%d\n",array[d+1]);
    return 0;
    }

Averigua qué está pasando mal.

  • # 17. Pensé que el siguiente programa era un programa C perfecto. Pero al compilar, encontré un error tonto. ¿Puedes averiguarlo (sin compilar el programa 🙂?

    #include
    void OS_Solaris_print()
    {
    printf("Solaris - Sun Microsystems\n");
    }
    void OS_Windows_print()
    {
    printf("Windows - Microsoft\n");
    }
    void OS_HP-UX_print()
    {
    printf("HP-UX - Hewlett Packard\n");
    }
    int main()
    {
    int num;
    printf("Enter the number (1-3):\n");
    scanf("%d",&num);
    switch(num)
    {
    case 1:
    OS_Solaris_print();
    break;
    case 2:
    OS_Windows_print();
    break;
    case 3:
    OS_HP-UX_print();
    break;
    default:
    printf("Hmm! only 1-3 :-)\n");
    break;
    }
    return 0;
    }

——————————————————————————————————————-
ACTUALIZACIÓN-PARTE 2
——————————————————————————————————————-

  • # 18. Hay 4 cubos de 9 monedas cada uno. Las monedas reales pesan un gramo cada una, y las monedas falsas pesan 2 gramos cada una. Cada cubo es falso (contiene solo monedas falsas) o real (contiene solo monedas reales). Dada una máquina de pesaje, ¿cómo puede determinar todos los cubos que son falsos con un solo pesaje?
  • # 19. ¿Cómo encuentra eficientemente la cadena repetitiva más grande y la cantidad de veces que se repite en una cadena dada? Por ejemplo, dada la cadena “abc fghi bc kl abcd lkm abcdefg”, la función debe devolver la cadena “abcd” y el recuento de 2.
  • # 20. Escriba un programa que muestre una “espiral” de nxn números, utilizando un espacio constante (no se permiten matrices). Por ejemplo, así es como se ve la espiral para n = 10:

99 98 97 96 95 94 93 92 91 90
64 63 62 61 60 59 58 57 56 89
65 36 35 34 33 32 31 30 55 88
66 37 16 15 14 13 12 29 54 87
67 38 17 4 3 2 11 28 53 86
68 39 18 5 0 1 10 27 52 85
69 40 19 6 7 8 9 26 51 84
70 41 20 21 22 23 24 25 50 83
71 42 43 44 45 46 47 48 49 82
72 73 74 75 76 77 78 79 80 81

  • # 21. El siguiente programa, cuando se ejecuta,

#include

vacío principal()
{
int a, b, c;
para (b = c = 10; a = “- FIGURA ?, UMKC, XYZHola, \
TFy! QJu ROo TNn (ROo) SLq SLq ULo + \
UHs UJq TNn * RPn / QPbEWS_JSWQAIJO ^ \
NBELPeHBFHT} TnALVlBLOFAkHFOuFETp \
HCStHAUFAgcEAelclcn ^ r ^ r \\ tZvYxXy \
T | S ~ Pn SPm SOn TNn ULo0ULo # ULo-W \
Hq! WFs XDt! “[B +++ 21];)
{
para (; a–> 64;)
{
putchar (++ c == ‘Z’? c = c / 9: 33 ^ b & 1);
}
}
}

Da como salida,
¿Cuál es la lógica utilizada aquí?

  • # 22. Escriba una función recursiva que genere el conjunto de potencia de un conjunto dado. El conjunto se pasa a la función como una cadena, y la función debe imprimir los subconjuntos como cadenas.
    Ejemplo: dado “abc”, la función debería imprimir (la cadena vacía, codificarla de alguna manera), a, b, ab, c, ac, bc, abc.
  • # 23. ¿Cuál es el resultado esperado para el siguiente programa y por qué?

    enum {false,true};
    int main()
    {
    int i=1;
    do
    {
    printf("%d\n",i);
    i++;
    if(i < 15)
    continue;
    }while(false);
    return 0;
    }

  • # 24. El siguiente programa no “parece” imprimir “hola”. (Intenta ejecutarlo)

    #include
    #include
    int main()
    {
    while(1)
    {
    fprintf(stdout,"hello-out");
    fprintf(stderr,"hello-err");
    sleep(1);
    }
    return 0;
    }

    ¿Cuál podría ser la razón?

  • # 25. El siguiente programa C segfaults de IA-64, pero funciona bien en IA-32.

    int main()
    {
    int* p;
    p = (int*)malloc(sizeof(int));
    *p = 10;
    return 0;
    }

    ¿Por qué sucede así?

  • # 26. Aquí hay una pequeña pieza de programa (nuevamente solo 14 líneas de programa) que cuenta el número de bits establecidos en un número.
    De entrada y salida
    0 0 (0000000)
    5 2 (0000101)
    7 3 (0000111)

    int CountBits (unsigned int x )
    {
    static unsigned int mask[] = { 0x55555555,
    0x33333333,
    0x0F0F0F0F,
    0x00FF00FF,
    0x0000FFFF
    } ;
    int i ;
    int shift ; /* Number of positions to shift to right*/
    for ( i =0, shift =1; i < 5; i ++, shift *= 2)
    x = (x & mask[i ])+ ( ( x >> shift) & mask[i]);
    return x;
    }

    Descubra la lógica utilizada en el programa anterior.

————————————————————————————————————–
Actualización-Parte 3
————————————————————————————————————–
# 27 Escriba un programa para contar el número de 1 que se producen en el número de página de un libro de n páginas.
Bonificación: generalice esto para números que no sean 1.

Este me llevó bastante tiempo. Una vez que sepas la respuesta, es pan comido.

Un grupo de personas con una variedad de colores de ojos viven en una isla. Todos son lógicos perfectos: si una conclusión se puede deducir lógicamente, lo harán al instante. Nadie sabe el color de sus ojos. Todas las noches a medianoche, un ferry se detiene en la isla. Todos los isleños que hayan descubierto el color de sus propios ojos abandonan la isla y el resto se queda. Todos pueden ver a todos los demás en todo momento y llevar un recuento de la cantidad de personas que ven con cada color de ojos (excluyéndose a sí mismos), pero de lo contrario no pueden comunicarse. Todos en la isla conocen todas las reglas en este párrafo.

En esta isla hay 100 personas de ojos azules, 100 personas de ojos marrones y el Guru (ella tiene los ojos verdes). Entonces, cualquier persona de ojos azules puede ver a 100 personas con ojos marrones y 99 personas con ojos azules (y una con ojos verdes), pero eso no le dice el color de sus ojos; por lo que él sabe, los totales podrían ser 101 marrones y 99 azules. O 100 marrones, 99 azules, y podría tener los ojos rojos.

Al Guru se le permite hablar una vez (digamos al mediodía), en un día en todos sus años interminables en la isla. De pie ante los isleños, ella dice lo siguiente:

“Puedo ver a alguien que tiene ojos azules”.

¿Quién sale de la isla y en qué noche?

No hay espejos ni superficies reflectantes, nada tonto. No es una pregunta capciosa, y la respuesta es lógica. No depende de una redacción complicada o de que alguien mienta o adivine, y no implica que las personas hagan algo tonto como crear un lenguaje de señas o hacer genética. El Gurú no está haciendo contacto visual con nadie en particular; ella simplemente dice “Cuento al menos una persona de ojos azules en esta isla que no soy yo”.

Fuente: xkcd.com

PD: Un amigo me contó sobre el rompecabezas cuando estaba buscando los ojos azules de la canción india Honey Singh Song, que es una mierda. Y encontró esta obra maestra. 🙂

EDITAR: Esto se puede hacer.

Un rompecabezas inusual :
Entrevistador : escriba un programa para imprimir números entre 1 y 100 que, cuando se dividen entre 3, dejen un resto de 4.

(Candidato sea como … haatan fácil )

(comienza a escribir)

vacío principal()
{
En t…….
……
………
… ..
}

( completado )

( sintiéndose orgulloso )

( Entrevistador sonriendo …… .. )

Entrevistador : Sr. Candidato … ¡ ¿cómo puede un número dividido por 3 dejar un resto mayor que 2 !!!!!!!!!!!!!!!

( Candidato cara-palma )

Estado: humillado, rechazado.

1. Escriba cadenas de coincidencia regexp que tengan solo letras a, pero solo de longitud, que es un número compuesto.
(ejemplo: aa -> Verdadero, aaaa -> Falso (no compuesto), aab -> Falso (no solo a))
2. Algoritmo BFS: ¿cuál es la complejidad de la memoria de BFS? Quiero decir, ¿cuál es el tamaño máximo de la cola durante la ejecución para el gráfico de n vértices ym aristas? ¿Por qué?
3. Encuentre el número decimal positivo más pequeño que contenga solo dígitos 0 y 1 que sea divisible por N.
(ejemplo: 7 -> 1001)
4. Tiene la secuencia A que contiene N números. La secuencia B se obtiene tomando múltiplos de cualquier par de números de A (por lo que obtienes exactamente N ^ 2 pares [contamos (A * B y B * A como par diferente)]. Encuentra K-ésimo número más pequeño en la secuencia B.
5. Implemente la cola usando dos pilas.
6. Encuentre en tiempo lineal si la matriz de longitud N contiene enteros del rango [1; N] tiene duplicado utilizando memoria adicional constante (sin contar la matriz de entrada; puede escribir en ella).
7. Tiene una cadena que contiene solo las letras A y B. Busque la subcadena más larga donde A aparece el doble de B.
(ejemplo de buena subcadena: ABAABA)
8. ¿Es posible crear una estructura de datos que proporcione operaciones Insert (x), Erase (x), FindMin () donde cada operación es o (log n)? ¿Por qué no o cómo hacer eso? Tenga en cuenta que x puede ser un número real y suponga que puede comparar en tiempo constante.
9. Se le da una secuencia de paréntesis S y un montón de consultas en forma: ¿Es correcto S [i..j]?
(ejemplo: S = () (())) (, consulta: (i = 3, j = 6) => subcadena = (()) => responder Sí)
Proporcione un algoritmo que pueda responder muchas consultas (miles) para una secuencia grande (miles de caracteres).
10. Búsqueda binaria. Tienes N celdas de matriz ordenada. Desea encontrar el valor x. Sin embargo, el costo del valor de lectura T [i] es i. Proporcione un algoritmo que sea óptimo en el peor de los casos.
(si hay alguna forma de encontrar siempre x usando consultas de costo como máximo p en cualquier caso y su algoritmo tiene un costo mayor, está mal)
11. (muy interesante) Tienes K huevos similares y quieres determinar su durabilidad. Cada huevo tiene la misma durabilidad p (que debes encontrar). Si el huevo se cae desde la altura <= p, no se descompondrá, si se cae desde la altura> p, se romperá. Usted sabe que p es un número entero y es <= N.
Encuentre el algoritmo que determina p usando el menor número de gotas (en el peor de los casos) si:
(a) N = 100, K = 10 (muy fácil)
(b) N = 100, K = 1 (muy fácil)
(c) N = 100, K = 2 (desafiante)
(d) N = 1000, K = 5 (muy desafiante)
(e) N = 10 ^ 9, K = 15 (más que difícil)
Lo bueno de este problema: todos estos cinco puntos (a) – (e) tienen diferentes soluciones.

Decodificando un truco de magia

Sí, lo leiste bien. Es, con mucho, la pregunta más interesante que he enfrentado en una entrevista.

Antes de pasar al problema, repasemos el contexto. Había solicitado una pasantía y solo tuve una entrevista telefónica en todo el proceso. Lo que significaba que todo dependía de una sola entrevista. Había dado un buen número de entrevistas para entonces, por lo tanto, tenía un plan de batalla listo. En la mayoría de los casos, si recibo una pregunta así, la abordaré así, de lo contrario intentaré eso, etc.

Llega el día de la entrevista. Hago un poco de preparación mental, mantengo algunas hojas en bruto a la mano y entro en mi modo de entrevista. Suena el teléfono, lo cojo y mi entrevista favorita hasta la fecha comienza.


Entrevistador: ¡Hola, Nishant! ¿Cómo estás? ** Intentando romper el hielo **

Yo: ** Hielo roto **

Entrevistador: Genial, comencemos con la entrevista. Pero primero, déjame contarte una historia interesante.

Yo: ** Uhh, una historia? De acuerdo … es una ronda de recursos humanos. Bueno … de todos modos no me cobran por la llamada. **

Yo: por supuesto! Ha pasado mucho tiempo desde que escuché uno.

Entrevistador: ¡Genial! La historia trata sobre dos magos a quienes les encantaba impresionar a los demás con sus increíbles trucos.

Su truco más popular involucraba una baraja estándar de 52 cartas y un voluntario de la audiencia. Ambos magos trabajaron juntos para realizar este truco. Una actuación típica se veía así,

  1. El primer mago pide un voluntario de la audiencia.
  2. Luego les pide que elijan cinco cartas del mazo y que se las devuelvan .
  3. El mago entonces mira las cinco cartas .
  4. Luego elige una de las cinco tarjetas y se la entrega al voluntario, pidiéndole que se la quede con él. Esta será la carta secreta . Tenga en cuenta que nadie excepto el voluntario y el primer mago saben cuál es la tarjeta secreta.
  5. El primer mago luego revela las cuatro cartas restantes a todos.
  6. El segundo mago, que estaba observando en silencio hasta ahora, revela la tarjeta secreta del voluntario para sorpresa de todos.

Yo: ** Me doy cuenta de a dónde va esto … que mi plan de batalla de la entrevista descanse en paz. **

Entrevistador: Espero que hayas prestado atención. ¡El primer problema es decodificar cómo los magos lograron el truco!

Yo: . . . .


PD: Aquí hay algunas aclaraciones para aquellos que quieran resolverlo,

  • La baraja se baraja aleatoriamente , por lo tanto, no es posible conocer de antemano las cartas elegidas.
  • El segundo mago no tiene otra información, excepto las cuatro cartas reveladas por el primer mago (esta es una pista importante).
  • Este es un truco genuino sin un juego de manos o métodos sublimados.

Lectores de PPS que sienten curiosidad por la solución, consulte este enlace.

Problema

  • Considera que hay una fiesta.
  • Hay un total de n miembros en la fiesta.
  • Entre esos n, un miembro es una celebridad.
  • Esto significa que los miembros n-1 no son famosos y un miembro es una celebridad.
  • Hay una cosa única sobre el tipo de celebridad: el tipo de celebridad no conoce a ninguno de los miembros que no son famosos y todos los miembros que no son famosos conocen al tipo de celebridad.
  • El objetivo es encontrar al chico famoso entre esos n miembros en 0 (n).

EJEMPLO

  • Vamos a resolver este problema con un ejemplo.
  • Deje que la entrada del ejemplo sea
  • Hay 5 miembros en el grupo y su nombre es A, B, C, D, E.
  • A sabe B, C, E.
  • B sabe C, D.
  • C no conoce a nadie.
  • D conoce a C.
  • E sabe A, B, C.
  • La salida del ejemplo es “C”.

SOLUCIÓN

  • Creamos una lista. La lista contiene el nombre de todos los miembros de la fiesta.
  • La lista es igual a {A, B, C, D, E}.

String findCelebritry (Miembros de la lista) {
while (members.size ()! = 1) {
if (doesKnow (members.get (0), members.get (1))) {
members.remove (0);
} más {
members.remove (1);
}
}
return members.get (0);
}

  • La función doesKnow (String, source, String destination) verifica si source conoce el destino. Si la fuente conoce el destino, devuelve verdadero o devuelve falso.

Algoritmo

  1. Elija el primer y el segundo elemento de la lista.
  2. Compruebe si el primer elemento conoce el segundo elemento utilizando la función “doesKnow”
  3. En caso afirmativo, elimine el primer elemento de la lista. Dado que el primer elemento conoce el segundo elemento. El primer elemento nunca puede ser una celebridad. Como celebridad no conoce a nadie .
  4. Si no, elimine el segundo elemento de la lista. Dado que el segundo elemento no se conoce por el primer elemento. El segundo elemento nunca puede ser una celeridad. Como chico famoso es conocido por todos.
  5. Vaya al paso 1 si el tamaño de la lista no es igual a 1.

Iteración 1

  • miembros = {A, B, C, D, E}
  • doesKnow (A, B) => TRUE
  • Entonces, elimine A de la lista.
  • Como A sabe que B. A no puede ser una celebridad .

Iteración 2

  • miembros = {B, C, D, E}
  • doesKnow (B, C) => TRUE
  • Entonces, elimine B de la lista.

Iteración 3

  • miembros = {C, D, E}
  • doesKnow (C, D) => False
  • Entonces, elimine D de la lista.
  • Como D no es conocida por C. D no puede ser una celebridad.

Iteración 4

  • miembros = {C, E}
  • doesKnow (C, E) => False
  • Entonces, elimine E de la lista.

Iteración 5

  • miembros = {C}
  • El tamaño de los miembros es 1.
  • Así que termina el ciclo.
  • regresar C.

1. Filósofos que cenan: cinco filósofos se sientan alrededor de una mesa circular. Delante de cada filósofo hay un gran plato de arroz. Los filósofos alternan su tiempo entre comer y pensar. Hay un palillo entre cada filósofo, a su derecha e izquierda inmediatas. Para comer, un filósofo dado necesita usar ambos palillos. ¿Cómo puedes asegurar que todos los filósofos puedan comer de manera confiable sin morir de hambre?
2. Vendedor ambulante (P = NP): un vendedor tiene una ruta de ciudades que conforman su ritmo. ¿Cuál es la ruta de ventas más eficiente que visita cada ciudad exactamente una vez y luego regresa a la ciudad de origen?
3.Ocho reinas (diseño de algoritmo): Dadas ocho reinas en un tablero de ajedrez estándar de 8 x 8, ¿cuántas posiciones únicas, excluidas las rotaciones y las imágenes especulares, pueden ocupar esas ocho reinas sin atacarse entre sí?

4.Towers of Hanoi (Recursion): tienes una pila de discos, de mayor a menor, que se deslizan a la primera clavija de un tablero de tres clavijas. Su objetivo es mover toda la pila de discos de la primera clavija a la tercera clavija. Sin embargo, solo puede mover el disco superior de cualquier clavija, y los discos más pequeños siempre deben colocarse en discos más grandes. ¿Cuántos movimientos tomará?

Algunos acertijos comunes preguntados en entrevistas técnicas:

  • ¿Hacer 120 con 5 ceros usando operaciones matemáticas?
  • ¿Hacer 120 con 4 ceros usando operaciones matemáticas?
  • Delante de ti hay un equilibrio. Su tarea es diseñar un sistema, utilizando 4 pesas, de modo que se pueda pesar cualquier cantidad total de kilogramos hasta 40 kg.
  • Delante de ti hay un equilibrio. Su tarea es diseñar un sistema, utilizando 4 pesas, de modo que se pueda pesar cualquier cantidad total de kilogramos hasta 80 kg.
  • Tres hormigas están sentadas en las tres esquinas de un triángulo equilátero. Cada hormiga comienza al azar, elige una dirección y comienza a moverse a lo largo del borde del triángulo. ¿Cuál es la probabilidad de que ninguna de las hormigas choque?
  • Hay un edificio de 100 pisos: si un huevo cae desde el piso N o superior, se romperá. Si se cae desde cualquier piso de abajo, no se romperá. Te dan 2 huevos. Encuentra N. ¿Cuántas gotas necesitas hacer? ¿Qué estrategia debería adoptar para minimizar la cantidad de gotas de huevo que se necesitan para encontrar la solución?
  • El Sr. X tiene 25 caballos, y quiere elegir los 3 caballos más rápidos de esos 25. Tiene solo 5 pistas, lo que significa que solo 5 caballos pueden correr a la vez, incluso si no tiene un cronómetro. ¿Cuál es el número mínimo de carreras requeridas para encontrar los 3 caballos más rápidos?

Las soluciones a estos y muchos más rompecabezas que puedes encontrar en Puzzles | GeekyPrep

¡Buena suerte!

Bueno, este acertijo se le preguntó a uno de mis superiores, durante su entrevista con Oracle (No estoy seguro), en realidad estaba respondiendo una pregunta relacionada con el hash, Let my Senior S y Bench -I

S-señor, usamos hashing en esta pregunta,

I-ohh hashing ¿sabes cómo funciona el hashing?

S-Sí, señor, en el hash convertimos las claves grandes (Números) a más pequeñas y luego almacenamos los Datos.

I-bueno, mientras que la conversión de números grandes a pequeños hay posibilidades de que obtengamos la misma clave nuevamente?

S-no lo sé, así que trata de manipularlo (el mayor error), y dice que no, señor, pero no mucho, señor …

I-sorprendido y espera ,,, (ahora comienza el rompecabezas ..)

¿Bueno, dime cuántas personas necesitan tener un 100% de posibilidades de que haya al menos dos personas del mismo cumpleaños?

S-instantáneamente 366

Como un total de 365 días (considere el año bisiesto también) en un año y necesita 366 personas para estar 100% seguro de que al menos 2 personas tienen la misma fecha de nacimiento.

De acuerdo, pero ahora dime cuántas personas necesitas para asegurarte de que el 50% de posibilidades de que 2 personas tengan el mismo nacimiento.

S-intenta con todas sus fuerzas no podría tener idea de cómo comienza a resolverlo, primero piensa que para 100% significa 366 días para 50% 183 días, pero luego se da cuenta, puede ser complicado y dice que no a mí.

¿No crees que 183?

S-usa su cerebro aquí y dice que no …

I-Smiling porque hizo bien su trabajo y dice que solo 23 necesita asegurarse de que el 50% de posibilidades de que dos personas tengan el mismo cumpleaños.

S-shock y no lo creo

I-y solo necesita 70 personas para que sea 99.99%.

Entrevista Cont…

Nombre del rompecabezas: Paradoja de cumpleaños. Problema de cumpleaños

La solución se dirige desde GeeksforGeeks | Un portal informático para geeks

si pones (igual) = 0.5 como 50%, obtienes n = 22.83, por lo que el número mínimo de personas que necesitas solo 23. pocos rompecabezas son literalmente increíbles, no los obtenemos con demasiada facilidad. 😛

  • # 6. Hay un edificio de 100 pisos y te dan dos huevos. Los huevos tienen una propiedad interesante que si arroja el huevo desde un número de piso Suponiendo que puede reutilizar los huevos que no se rompieron, proporcione un algoritmo para encontrar x en un número mínimo de lanzamientos.

Supongo que está tratando de minimizar el número máximo de lanzamientos de huevos. Si es así, está equilibrando la necesidad de hacer gotas de huevo desde el piso L + 1 hasta el piso B-1 (en el caso de que rompa el huevo en el piso B, habiendo establecido que el piso L no rompe el huevo) contra el cantidad de gotas que necesita hacer en los pisos superiores B. Intuitivamente, si comienza en el piso 33, es posible que tenga que hacer 31 gotas más (piso 2, piso 3, …, piso 32) si el huevo se rompe inicialmente, y 31 o 32 gotas más si no se rompe y necesita repetir el algoritmo de caída de huevos en el piso 66.

Entonces, creo que la respuesta es x = 33.

Puedes referir esta página. Rompecabezas Esta página contiene una buena lista de los rompecabezas más solicitados en las entrevistas. De hecho, me preguntaron algunos acertijos en mis entrevistas que ya había resuelto en este sitio.

Pocos que se preguntaron durante las ubicaciones de nuestro campus:
1. Fecha de Palindrome
2 cuatro personas y puente
3 100 espadas
4 Medida 6 Litros
5 rompecabezas de 9 puntos
6 Estrategia para el conejo
7 Sand Timer Puzzle
8 doce monedas
9 barriles de vino envenenados
10 A de oro por 7 días de trabajo
11 Una caja de bolas defectuosas
12 quema las cuerdas
13 Cortar el rectángulo
14 Rompecabezas de 100 cerraduras
15 tres hormigas
16 5 piratas y 100 monedas de oro
17 cumpleaños de Cheryl

Estos son algunos de los mejores y más populares rompecabezas. Este es un conjunto de rompecabezas diseñado para verificar la inteligencia. Estos rompecabezas también actúan como un ejercicio efectivo para el cerebro.

Pruebe algunas preguntas difíciles para evaluar su cerebro.

Toma 5 segundos de desafío .

Este es un concepto maravilloso en el que debes responder algunas preguntas difíciles en 5 segundos . Comprueba qué tan rápido responde tu cerebro. Este es un buen ejercicio para tu cerebro. Consulte esto a sus amigos y familiares también.

Míralo hasta el final, incluso si no puedes responder en el primer intento. Haga otro intento para verificar su memoria. También ayuda a mejorar el poder de su memoria.

¿Necesitar un descanso?

Mira los mejores episodios de Tom y Jerry.

De vuelta al trabajo 🙂

Un poco más allá, también puedes probar algunos de los acertijos más difíciles que la mayoría de la gente no pudo resolver.

El tiempo de diversión continúa ..

Diversión con fósforos: rompecabezas de fósforos

Organiza Matchsticks y crea nuevas formas.

Suscríbete a YouTube para obtener más videos relacionados con rompecabezas.

Si te gusta ver más episodios de Tom y Jerry, estos son algunos de los mejores episodios para ti. Haga clic en el siguiente enlace.

Tom y Jerry – YouTube

Gracias.

Aquí hay una lista de rompecabezas interesantes.

1. ¿Cuántas veces al día se superponen las manecillas de un minuto y la hora de un reloj?

Solución:

2. Problema de hormigas y triángulos

Problema: tres hormigas están sentadas en las tres esquinas de un triángulo equilátero. Cada hormiga comienza al azar, elige una dirección y comienza a moverse a lo largo del borde del triángulo. ¿Cuál es la probabilidad de que ninguna de las hormigas choque?

Solución:

3. 25 caballos 5 pistas Puzzle

Rompecabezas: hay 25 caballos de los cuales necesitas encontrar los 3 caballos más rápidos. El campo de carreras consta de 5 pistas, lo que significa que solo puedes correr 5 caballos a la vez. Si no tiene un cronómetro, ¿cuál es el número mínimo de carreras necesarias para encontrar los 3 caballos más rápidos?

Solución:

Fuente: Maths Puzzles Games

Manera eficiente de multiplicar con 7

Podemos multiplicar un número por 7 usando el operador bit a bit. Primero desplace el número a la izquierda en 3 bits (obtendrá 8n), luego reste el número original del número desplazado y devuelva la diferencia (8n – n).

Programa:
# include

int multiplyBySeven (sin signo int n)
{
/ * Tenga en cuenta el soporte interno aquí. Esto es necesario
porque la precedencia del operador ‘-‘ es mayor
que ‘<<' * /
retorno ((n << 3) - n);
}

/ * Programa de controlador para probar la función anterior * /
int main ()
{
unsigned int n = 4;
printf (“% u”, multiplyBySeven (n));

getchar ();
devuelve 0;
}

Respuesta a la pregunta1

El ciclo se ejecuta la misma cantidad de veces que se requiere para generar el binario de un dígito dado. El código se asegura de no poner trabajo extra en el procesador usando la operación de división o módulo. Las operaciones de bit se ejecutan mucho más rápido por el procesador.


Pregunta 2: No puedo obtener si la rotación se realizará solo en el conjunto de 2.


Respuesta a la pregunta 3

El código! Printf siempre devolverá falso.

Proponiendo otras respuestas en la próxima publicación

Esto se le pidió a un probador en una entrevista.

Hay 3 bombillas normales en el primer piso.

Hay 3 interruptores en planta baja. Puedes ver bombillas cuando estás cerca de los 3 interruptores.
Tienes que subir las escaleras solo una vez y decirnos qué interruptor pertenece a qué bombilla.

Por favor escriba las respuestas en la sección de comentarios.
Escribiré la respuesta correcta cuando haya una buena cantidad de comentarios.

prisionero = p;
botella = b;
En primer lugar, para fines de prueba, el rey solo tiene 28 días.
1. dé una b a solo una p cada día. por lo tanto 10 b cubiertos cada día.
2. dar una b común a 1st p y 2nd p. dé una b común a la 1ra y 3ra ……… y así sucesivamente hasta dar una b a la 1ra y 10ma p
3. repita el paso 2 foer dando b común a 2nd p y 3rd p, 2nd p y 4th p, 2nd p y 5th p…. así sucesivamente hasta la 2ª y 10ª p.
4. Repita el paso para los 10 prisioneros. así que la fórmula básica que se usa aquí id
n (n + 1) / 2 botellas para n prisioneros cada día.
5. Por lo tanto, 55 botellas cubiertas cada día.
6, por lo tanto, en 28 días, se cubrirán 55 * 28> 1000 botellas.
7. por lo tanto, cuando dos prisioneros mueren el mismo día, al rastrear la botella común que se les dio a los dos hace una semana, podemos encontrar la botella envenenada.
o si solo una p muere, al rastrear la b dada solo a él (en el paso 1) podemos encontrar la b envenenada

Se le da una secuencia [matemática] (c_0, \ puntos, c_ {n-1}) [/ matemática]. Aquí, [math] c_i [/ ​​math] será el costo de una tonelada de grano dentro de unos días. (El día i , puedes comprar o vender granos a ese precio. Puedes comprar / vender partes fraccionarias arbitrarias de una tonelada).

Tienes $ 1000. Escriba un algoritmo que calcule la mayor cantidad de dinero que puede tener al final del día n -1 si …

  • … solo puedes comprar una vez y vender una vez.
  • … Puedes comprar y vender arbitrariamente muchas veces.
  • … Solo puedes comprar k como máximo y vender como máximo k veces.

Dado un Matrix n * n, escriba un programa que imprima en espiral todos los elementos de la matriz.
ej .: dado M introducido como se muestra a continuación (n = 3)
1 2 3
4 5 6
7 8 9
el programa debe devolver 1 2 3 6 9 8 7 4 5

Aquí hay una lista de algunos acertijos interesantes.

1. Problema de la hormiga y el triángulo

2. Problema de la puerta del cielo

3. Rompecabezas de barra de oro

4. 2 Huevos 100 Puzzle de piso

5. Five Pirates y Gold Coin Puzzle

6. 25 caballos 5 rompecabezas de pista

7. Rompecabezas de monedas

8. Cruzando el puente Puzzle

9. Problema de la cuerda ardiente

10. Rompecabezas mal etiquetado

11. Conecte 3 casas con 3 pozos

12. Rompecabezas de canicas rojas y azules

13. ¿Cuál es el ángulo entre la manecilla de minutos y la manecilla de hora a las 6:30

14. ¿Cuál es el ángulo entre la manecilla de minutos y la manecilla de hora a las 3:15?

15. ¿Cuántas veces al día el reloj pasa la vuelta de un reloj analógico?

16. () + () + () = 30 Puzzle usando (1, 3, 5, 7, 9, 11, 13, 15) también puedes repetir números

17. Star Math Puzzle

18. 508 Matchstick Puzzle

19. 5008 Matchstick Puzzle

20. 6008 Matchstick Puzzle

21. Conecte 12 puntos con 5 líneas rectas

Fuente: Rompecabezas

More Interesting

¿Qué es una biblioteca de entrada / salida?

¿Las entrevistas para un puesto de Ingeniero de Software con Google serán más fáciles en Londres o Hong Kong que en su sede?

Cómo abordar las preguntas al final del sobre en las entrevistas de diseño del sistema, como estimar la cantidad de máquinas necesarias para el Facebook News Feed

¿Qué tan útil es el libro "Cracking the Coding Interview" mientras aparece para entrevistas técnicas de compañías como Google, Facebook, Amazon, etc.?

Cómo responder preguntas de diseño en una entrevista de ingeniero de software

¿Cuál debería ser la respuesta para esta pregunta de entrevista de SQL?

Tengo una entrevista del Royal Bank of Scotland en una semana para un puesto de desarrollador de Java. ¿Qué preguntas puedo esperar?

Cómo prepararse para una entrevista en Google para un ingeniero técnico

Si no puedo resolver problemas de algoritmos en la entrevista técnica, ¿cómo debería fallar la entrevista de una manera excelente?

¿Cuáles son algunas preguntas de la entrevista en las listas vinculadas?

¿Cómo debo prepararme para una entrevista PHP CodeIgniter?

¿Cómo se prepara para una entrevista de desarrollador de software en solo 3 días?

¿Hay una laguna en el procedimiento de entrevista de TI?

¿Las preguntas de entrevistas de software en las principales compañías tecnológicas están específicamente diseñadas para sesgar a los programadores más jóvenes (que aún recuerdan los conceptos teóricos en detalle)?

¿Qué es mejor en una entrevista técnica, código ilegible con buen rendimiento o código legible con peor rendimiento?