1. 在线评估测试(HackerRank)
一种。 15 道能力题(15 分钟)
湾5 个输入输出程序(15 分钟)
C。 2 个编程问题(45 分钟)
2. 现场第一轮——技术轮(1小时)
一种。讨论项目,他们的架构图等。
湾对包含 0 和 1 的数组进行一次排序,时间复杂度为 O(n),空间复杂度为 O(1)。
C。将 1 添加到以单链表形式存储的数字。每个数字由一个节点表示。链表的头部指向数字的最高有效位。在一次遍历中完成。
d.有多少种不同的方式来形成一个 N 位二进制数,使得没有两个连续的 1 以 N 位形式一起出现。例如,N = 3 那么 101、010、000、001、100 是有效的,但 110、111、011 是无效的。因此输出为 5。我编写了程序,但面试官告诉我,这也有一个数学公式。
e.生产者 – 消费者问题(此问题的伪代码)、信号量和互斥量、临界区等。 关于 wait() 和 signal() 的一些问题,例如在不同情况下何时会成为死锁等。
3. 现场第二轮——技术轮(1小时)
讨论一个项目,面试官巧妙地转化为问题,并针对同一问题提出了许多后续问题。
问题 – 你将如何在内存中表示图像? (即通过一个矩阵,每个单元格作为一个像素)。
因此,考虑有一个单色图像表示为您的矩阵,您将如何以编程方式在同一矩阵上绘制线段? (这意味着用该线段将通过的数字填充单元格)。
请记住,线段可以是与 X 轴或 Y 轴对齐的线,也可以是未对齐的线。为此编写一个程序。
我假设线段的端点是 2D 空间中的整数,并相应地编写了代码,但面试官然后问我,如果端点是浮点/双精度,这段代码是否可以工作,并就此进行了讨论以使其成为广义的解决方案。
随后,面试官问了一些边界情况,比如线段的端点不在矩阵内或线段部分在矩阵内。
考虑到线段没有与任何轴对齐,如果线段不受矩阵的限制,你将如何找到线段首先进入/退出矩阵的点?
4. 现场第三轮——技术轮(1小时)
一种。关于指针的一些问题是指针有效与否的区别,通过引用传递函数等。
湾当我们声明一个类的对象并为其分配内存时会发生什么?
C。继承、多态、虚函数等问题。
d.使用以下 API 编写一个程序来实现哈希表 –
一世。无效插入(int键,int值),
ii.无效删除(int键),
三、整数搜索(整数键)和
四、 int getRecentElement()(最近元素是被插入()或搜索()触及的元素,返回其键)。
以上所有 API 都应该在 O(1) 中工作。假设没有重复的键。
e.在数组中搜索一个元素,其中每个连续的元素对相差 1,即 |A[i] – A[i+1]| = 1 和 |A[i-1] – A[i]| = 1。
F。给定 N 个线程和 N 个不同类型资源的单个实例,您将如何将资源分配给线程,以确保没有死锁且等待时间最短?假设每个线程可以随时到来并请求任意数量的资源。你不知道什么时候会出现一个线程。
5. 现场第4轮——导演轮(1小时)
一种。项目讨论。
湾您将如何确定要安装在 PC 中的软件是否为恶意软件?给出一些方法来识别该软件的安装前和安装后。
C。您将如何识别该软件是否已将某些文件删除/添加到您的文件系统中?我说我们可以比较一下安装软件前后文件系统的树状结构。
d.给定两个包含安装前后文件名列表的文件。您将如何找出两个文件之间的区别?为 fileDifference(File A, File B) 编写伪代码。
e.你可以向上(?),向右(?)和向上(?)移动,有多少种方法可以从 N x N 矩阵的左下角到达右上角?矩阵表示是——
我使用动态规划给出了我的方法,但面试官告诉我推导出一个数学公式(这是Delannoy Number,http : //mathworld.wolfram.com/DelannoyNumber.html)。
6. 现场第5轮——经理轮(1小时)
一种。将数字转换为英文 Word 格式(印度货币)的程序。例如 – 1, 23, 500 到“十万二万三千五百”,100 到“一百”等。
https://www.geeksforgeeks.org/convert-number-to-words/
湾检查两棵树是否互为镜像的程序。