在线测试: 编码:时间:90分钟 有三个编码问题如下:
null
- 一个男人从家里拿着几块煎饼出发。现在他在到家之前访问了K个地方。在每个地方,他都可以买蛋糕、卖蛋糕或什么都不做。但他必须在到家之前卖掉L块蛋糕。找出他在旅途中任何时候能吃到的蛋糕的最大数量。N、 K,L作为输入 例:对于531,输出:7
- 确切的问题我不记得了。必须找到数组中最大的连续子数组。基本上是关于卡丹算法的问题 解决方案 : Geeksforgeks链接
- 有一段文字。有一种模式。图案包含*符号,可以用0个或多个字母(任意字母)替换。例如,如果aa*b中的模式aaab、aab、aaccb等都是有效模式。你必须在文本中找到该图案的出现次数。
MCQ:50分钟 共有45道题基于逻辑推理、数据解释和初等数学。一个建议是,从结尾开始,它们比开始时容易得多。
大约16名学生被选中接受采访。
第一轮
- 面试官看了我的简历。然后直接转到数据结构和算法。
- 他问我排序算法。然后他问我快速排序和合并排序有什么区别,什么时候使用? 我告诉他合并排序是稳定的,快速排序的最坏情况复杂度为o(n^2),但在快速排序中,我们不需要合并排序数组。对于数组,我们使用快速排序;对于链表,我们使用合并排序
- 为包含浮动的链表的合并排序编写代码 解决方案 : Geeksforgeks链接
- 然后,他告诉我通过交换节点中的数据在链表中进行气泡排序,并问除了复杂性之外,这里还有什么问题? 我告诉大家,looked列表通常包含大量数据,因此交换数据可能会导致大量开销,并降低性能。他似乎对这个答案很满意。
- 像5.7这样的浮点在CPU内部是如何表示的? 我必须告诉大家IEEE的符号。我不记得了,所以无法回答。
- 关于操作系统、线程、进程、它们的差异、分页等的问题很少
- 您必须编写一个用于排序的通用比较函数。例如,假设有一个学生类包含科目X、Y、Z的分数。您必须编写一个比较函数,以便根据用户希望的任何字段进行排序。 提示:使用函数指针
- 给出了两个数字,你必须在不使用*运算符的情况下将它们相乘,并告诉你这样做所需的最小加法次数。我也给出了一个答案,但无法说出所需添加的最小数量。 解决方案 : Geeksforgeks链接
第二轮 面试官又看了看我的简历,说我做了很多项目。但我的项目没有问题。
- 设计一个缓存来存储任何类型的数据。 因为我们不知道要存储什么数据,所以我们必须返回void指针。现在我首先用数组实现。然后我用LRU替换页面。为了跟踪最近使用最少的元素,我使用了一个堆。我被告知要进一步优化它。因此,首先将缓存表示为一个堆,然后最终生成一个双链表,其中包含存储在HashMap中的节点地址。为缓存和替换的set和get函数编写代码。 面试官帮了我很大的忙,把我推向了正确的解决方案
- 给出了一个C代码,要求我查找错误。这是一个艰难的过程,涉及内存空间中的指针和字符对齐,以及分割错误。
- 关于函数重载的几个问题 解决方案 : Geeksforgeks链接
- 如果给定了列车的到达时间和出发时间,您必须找到列车所需的最小站台数。 解决方案 : Geeksforgeks链接
第三轮 在这一轮中,我们详细讨论了我的实习项目。然后问了以下问题:
- 当我们经常分配和释放内存时会发生什么? 关于操作系统如何分配内存、碎片以及如何避免(压缩)内存,人们进行了长时间的讨论。
- 压实是如何工作的?他要的是algo 告诉他内存块可以用0(空闲)和1(占用)表示。压缩意味着最终移动所有0。我告诉他array和linkedlist各自的算法。
- 解除分配是如何发生的,以及在解除分配过程中应该注意哪些事项? 我告诉他,我们可以使用realloc()重用内存,而不是频繁地分配和释放内存。realloc()上有几个问题。
- 为什么大型数组的行主遍历比列主遍历快? 告诉他内部缓存可以带来的好处
- 你必须走一段距离。你可以走1、2或3步。找到很多做s0的方法。 给出了递归解和dp解。 解决方案 : Geeksforgeks链接
第四轮(最后一轮人力资源)
- 这基本上是一轮人力资源面试,还有一些问题,比如为什么是adobe?
- 如果你找到另一份工作,你将如何决定接受哪一份?
- 你的位置偏好是什么?等被问到。
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END