📜  Infosys 专业程序员面试经历(横向)

📅  最后修改于: 2022-05-13 01:58:27.381000             🧑  作者: Mango

Infosys 专业程序员面试经历(横向)

第一轮:从解决问题的一轮开始。我有 30 分钟的时间来解决。

  1. 问题:一位邪恶的科学家开发了一种注射剂,可以使鱼产生无法满足的饥饿感。注射后,一条大小为 x 的鱼可以吃掉另一条大小为 y (y < x) 的鱼,并变成一条大小为 x + y 的鱼,并保持这种饥饿感。水族馆里有许多大小不一的鱼。科学家将注入的鱼引入这个水族馆,目标是最终只剩下一条鱼。为了实现这一点,科学家只允许进行两种类型的移动:添加任意大小的正常鱼或从水族箱中移除现有的正常鱼。给定水族馆中其他鱼的大小和注入鱼的大小,编写一个程序来确定科学家实现其目标所需的最少移动次数。例如,假设水族箱中有 5 条鱼,注入的鱼的大小为 10,其他鱼的大小为 9、20、25 和 100。为了确保水族箱中只剩下 1 条鱼,科学家需要移除大小为 100 的鱼并添加大小为 3 的鱼。因此输出为 2。步骤顺序如下所示。鱼缸中每一步鱼的大小都显示在花括号中。突出显示的数字是注入鱼的大小。

    解决方案:

    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[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));
      
    }


之后,我来自 MERN 堆栈技术。所以,有人问我几个 React.js 和 Node.js 问题

  1. Redux Flow、Redux Saga、Thunk、Refs、React.js 中的延迟加载、Formik
  2. Node.js、ejs、Coa 框架、Express Questions 中的包装类
  3. Mongo DB 数据聚合

第 2 轮:主要来自我的项目和 React.js 的问题

第 3 轮: HR 轮(工资和其他个人详细信息讨论)