MTS-1 的 Adobe 面试体验
第一轮:面试官让我从编程、DS和算法中选择一个主题。这是一个 C++ 特定的驱动器,所以我选择了编程。
他让我编写一个程序,其中给出了一个数组,我们需要按照我们得到最大数字的顺序打印数组的元素。例如 – 输入 (23, 234, 3, 231, 56) 输出 – 56323423231
我解决了它,但他足够聪明,可以确定我的代码失败的情况,然后他告诉我改进我的逻辑。
接下来,他让我编写一个代码,根据以下条件确定数字变为 1 的步数:
如果数字是奇数 – n=3n+1 并且如果数字是偶数 – n=n/2
在此,他想检查我如何处理边界情况以及我的人数一直在增加的情况。
也问了一些我目前的工作。
反馈是积极的。
第 2 轮:
询问我的毕业率和目前的项目。
他给了我一个问题,他让我从给定二叉树的叶子中创建一个双向链表,复杂度为 logn。
经过 2-3 次尝试后,我达到了 logn 复杂性。他似乎对我的做法印象深刻。
接下来他给了我一个问题,我得到了一个数组和一个窗口大小“k”,我需要告诉可能的不同窗口中的所有最大元素。例如,假设数组为 10 个元素,窗口大小为 5,那么我需要在 0-5、1-6、2-7、3-8、4-9 和 5-10 位置打印最大值。
我解决了它,然后他让我降低复杂性。然后我使用了一个容量为 k 的队列,这也是他所期望的。
关于虚函数和构造函数重载以及一些 OOPS 概念的问题
反馈——积极
第三轮:
老鼠和毒奶瓶的谜题,我在第二次尝试中解决了。他没意见
当以 BFS 样式遍历时,他给了我一棵按排序顺序排列的元素树。
他让我编写一个函数,该函数将返回其数据与输入值匹配的节点。
我花了一些时间给他看我写的代码,他对我的逻辑和复杂性没有印象,并要求我优化,我有点卡住了。
然后他又给了我 1 个类似的问题,并要求我优化方法。
反馈——负面的。