1.在线评估测试(HackerRank)
一种。 15个智能问题(15分钟)
b。 5个输入输出程序(15分钟)
C。 2个编程问题(45分钟)
2.现场第1轮–技术轮(1小时)
一种。讨论项目,其架构图等。
b。对包含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.现场第2轮–技术轮(1小时)
访谈员巧妙地将其转化为问题并针对同一问题提出了许多后续问题的讨论。
问题–您将如何在内存中表示图像? (即以每个单元为像素的矩阵)。
因此,假设有一个单色图像表示为矩阵,您将如何以编程方式在同一矩阵上绘制线段? (这意味着用该线段将从其通过的数字填充单元格)。
请记住,线段可以是与X轴或Y轴对齐的线,也可以是不对齐的线。为此编写一个程序。
我假设行段的端点是2D空间中的整数,并据此编写了代码,但访问员随后问我,如果端点为float / double,则此代码是否有效,并进行了讨论以使其成为广义解。
此后,访调员问一些边界情况,例如线段的端点不在矩阵内还是线段的一部分不在矩阵内。
考虑到线段未与任何轴对齐,如果线段不受矩阵限制,您将如何找到线段首先进入/退出矩阵的点?
4.现场第3轮–技术轮(1小时)
一种。指针上的一些问题,例如指针之间的区别是否有效,通过引用函数传递的问题等。
b。当我们声明一个类的对象并为其分配内存时,会发生什么?
C。有关继承,多态性,虚函数等的问题
d。编写程序以使用以下API实现哈希表-
一世。 void insert(int键,int值),
ii。无效delete(int键),
iii。 int搜索(int键)和
iv。 int getRecentElement()(最近的元素是被insert()或search()触摸过的元素,并返回其键)。
以上所有API均应在O(1)中运行。假设没有重复的密钥。
e。在一个数组中搜索一个元素,其中每个连续的元素对精确地相差1,即| A [i] – A [i + 1] | = 1且| A [i-1] – A [i] | = 1。
F。给定N个线程和N个不同类型的资源的单个实例,如何将资源分配给线程,以确保没有死锁并且等待时间最短?假设每个线程可以随时出现,并请求任何数量的资源。您不知道线程何时到达。
5.现场第4轮–导演轮(1小时)
一种。项目讨论。
b。您如何确定将要安装在PC中的软件是否是恶意软件?提供一些在安装该软件之前和之后进行识别的方法。
C。您如何确定该软件是否已将某些文件删除/添加到文件系统?我说过,我们可以在安装软件之前和之后比较文件系统的树形结构。
d。给定两个文件,其中包含安装前后的文件名列表。您如何找出两个文件之间的差异?为fileDifference(文件A,文件B)编写伪代码。
e。您可以向上移动(?),向右(?)和向上向右(?),从N x N矩阵的左下角到右上角有多少种方法?矩阵表示为–
我使用动态编程给出了自己的方法,但是面试官告诉我要导出一个数学公式(这是Delannoy数,http : //mathworld.wolfram.com/DelannoyNumber.html)。
6.现场第5轮–经理轮(1小时)
一种。将数字转换为英语单词格式(印度货币)的程序。例如,– 1、23、500代表“十万二千三百五百”,100代表“一百万”等。
https://www.geeksforgeeks.org/convert-number-to-words/
b。程序检查两棵树是否彼此镜像。