📜  彭博采访经历 |第四套(入门级软件工程师)

📅  最后修改于: 2022-05-13 01:58:16.681000             🧑  作者: Mango

彭博采访经历 |第四套(入门级软件工程师)

面试过程:我通过职业页面申请并通过邮件获得回复,安排了 45 分钟的hackerrank codepair 面试(2:1)。

成功通过这一轮后,我不得不通过视频会议面试(2:1)在hackerrank上进行实时编码。

然后,我被要求进行现场面试,这是 2 小时的面试以及在hackerrank 上的编码。

据我说,无法对“为什么选择彭博”之类的问题做出适当的回答导致我被拒绝,所以我建议在面试前对公司进行背景调查。

面试问题:

第一回合:

第一个问题:

#include 
int main(int argc, char *argv[])
{
    char    abc[27];
    char    *ptr = abc;
    strncpy(abc, "abcdefghij",10);
     /*
     * What are the return types of each expression:
     *
    
     * 1. abc
     * 2. *abc
     * 3. abc[2]
     * 4. &abc[3]
     * 5. abc+4
     * 6. *(abc+5)
     * 7. abc[10]
     * 8. abc[11]
     * 9. ptr
     * 10. &ptr
     */
     return 0;
}

第二个问题:

编写一个链表类以及附加函数(在末尾添加一个节点)和析构函数。

第二轮:
第一个问题:编写一个函数,将两个节点指针作为参数,并给出它们在二叉搜索树中的最低共同祖先。此外,我被问及空间和时间复杂度。

第二个问题:给定两个单链表形式的数字,使得最重要的 nbit 在头部,例如。 123存储为1->2->3,编写一个函数,将参数作为指向两个表示数字的链表头的指针,并返回指向另一个链表头的指针,该指针表示作为两个数字相加结果的数字作为参数给出。

例如: 1->2->3 , 4->5->6 应该返回 5->7>9。

我还被问及我的解决方案的时间和空间复杂性,以及如果链表是双向链表,我的解决方案将如何变化。

第三轮(现场):
第一个问题:最初给了我一个号码,我应该将其视为终止号码。给定一个连续的数字流,编写一个函数,在达到终止数字时返回第一个唯一数字。当达到终止数时,面试官想要一个 O(1) 中的答案,因此基本上需要预处理。
通过这个问题,我对进程如何工作的了解,我的意思是什么是堆。堆栈,全局变量,局部变量也被检查了。我还被问到哈希映射是如何工作的,它的时间复杂度,它是如何计算的,我还被详细询问了链表和数组以及迭代器取消引用。

除此之外,我还谈到了我最具挑战性的项目,最无聊的项目,为什么我选择计算机科学作为我的领域,为什么彭博等。