在线编码回合:-
有 2 个编码问题和 20 个 MCQ。
- 给定一个数组,找出元素总和小于给定数字 k 的所有三元组。
GeeksforGeeks 链接 - 找到第 N 个幻数。
第一轮面试(面对面):-
面试官非常友好。他翻阅了我的简历,问我是否有任何项目。我回答没有,并告诉他我目前在做一个项目,后来我给了他一个简短的解释。对于那些没有做过任何项目的人不要太担心。
他问了我2个问题
- 生成所有可能的子集(子集迭代)。
GeeksforGeeks 链接 - 对网格上的 BFS 稍作修改。我告诉他我的方法,他很满意。
在我告诉我解决第二个问题的方法后,他告诉我在图表中为 BFS 编写一个伪代码。
他是我迄今为止遇到的最好的面试官。
面试持续了大约 45 分钟。
其他人被问到了类似的问题
- 链表中的中间元素。
GeeksforGeeks 链接 - 双链表中的归并排序。
GeeksforGeeks 链接 - 合并两个排序数组。
GeeksforGeeks 链接 - 给定一棵二叉树,对于每个叶节点,打印从根节点到叶节点的值的总和。
GeeksforGeeks 链接 - 快速排序
GeeksforGeeks 链接 - 二叉树和二叉搜索树中的 LCA。
- 二叉搜索树中的 LCA
- 二叉树中的LCA
第二轮面试(面对面):-
这个面试官也很友好。他对编码也有很好的了解。他问我上一轮怎么样,我回答说顺利。后来他问我上一轮问了我什么问题。我告诉他上一轮我被问到的问题,并解释了他们的解决方案。
他问了我2个问题。
- 按螺旋顺序打印二叉树。
GeeksforGeeks 链接 - lli 在这个问题中代表 long long int 。
他以函数的形式给了我一个问题。问题来了。
CPP
// a1(size1) and a2(size2) are arrays and you
// have to append them.
lli* Append(lli* a1,lli* a2,lli size1,lli size2)
{
}
CPP
lli* Append(lli* a1,lli* a2,lli size1,lli size2)
{
lli a[size1+size2],i;
for(i=0;i
简单但错误的解决方案
CPP
lli* Append(lli* a1,lli* a2,lli size1,lli size2)
{
lli a[size1+size2],i;
for(i=0;i
我告诉他上面的代码实际上失败了。他问我为什么失败。我是这样回答他的。数组 a 实际上在函数Append 中,一旦离开该函数,该数组的作用域就结束了。他当时问我怎么做。我不知道。后来他告诉我,我们必须使用malloc为数组分配内存。后来,他向我解释了使用堆内存是如何工作的。
亚马逊的所有练习题!