Experiencia de entrevista de Infosys para programador especialista (lateral)

Ronda 1: Comenzó con una ronda de resolución de problemas. Tengo 30 minutos para resolver. 

  1. Pregunta: Un científico malvado ha desarrollado una inyección que induce un hambre insaciable en un pez. Al aplicar esta inyección, un pez de tamaño x puede comerse a otro pez de menor tamaño y (y < x) y convertirse en un pez de tamaño x + y conservando este hambre. Un acuario tiene un número de peces de varios tamaños. El científico introduce un pez inyectado en este acuario con el objetivo de que finalmente solo quede 1 pez. Para lograr esto, al científico solo se le permiten dos tipos de movimientos: agregar un pez normal de cualquier tamaño o quitar un pez normal existente del acuario. Dados los tamaños de otros peces en el acuario y el tamaño de los peces inyectados, escriba un programa para determinar el número mínimo de movimientos que necesita el científico para lograr su objetivo. Por ejemplo, supongamos que hay 5 peces en el acuario, el pez inyectado es de tamaño 10 y los otros peces son de tamaño 9, 20, 25 y 100. Para asegurarse de que solo quede 1 pez en el acuario, el científico necesita quitar el pez de tamaño 100 y agregar un pez de tamaño 3 Entonces la salida es 2. La secuencia de pasos se muestra a continuación. Los tamaños de los peces en el acuario en cada paso se muestran entre llaves. El número resaltado es el tamaño del pez inyectado.

    Solución:

    JavaScript

    function fish(x, A) {
      
     A.sort((a,b) => a-b);
      
      
      
     let sum = x;
      
     let required_removals=A.length;
      
     let moves = 0;
      
     let best_moves=required_removals;
      
     let i =0;
      
      
      
     while(i<A.length) {
      
       if(sum > A[i]) {
      
         sum +=A[i];
      
         required_removals -=1;
      
         i=i+1;
      
       } else {
      
         sum = sum +(sum -1);
      
         moves=moves+1;
      
       }
      
      
      
       best_moves = Math.min(best_moves, moves+required_removals);
      
     }
      
      
      
     return best_moves;
      
    }
      
      
      
    var arr= [
      
     [10, [9,20,25,100]],
      
     [3, [25,20,100,400,500]],
      
     [50, [25,20,9,100]]
      
    ]
      
      
      
    for(let [x,A] of arr) {
      
     console.log(`${x}#${A}`);
      
     console.log("");
      
     console.log(fish(x,A));
      
    }

Después de eso, soy de la tecnología de pila MERN. Entonces, me hicieron un par de preguntas sobre React.js y Node.js

  1. Redux Flow, Redux Saga, Thunk, Refs, Lazy Loading en React.js, Formik
  2. Clase Wrapper en Node.js, ejs, Coa Framework, Express Questions
  3. Agregación de datos Mongo DB

Ronda 2: Preguntas principalmente de mi proyecto y React.js

Ronda 3: Ronda de recursos humanos (discusión sobre el salario y otros detalles personales)

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 *