📜  Qualcomm 面试体验 2019(校园内)

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

Qualcomm 面试体验 2019(校园内)

第一轮——笔试

在这一轮中,我们的评判标准是能力、核心计算机科学的基本概念、基于输出的 C 问题(所有中等水平)。

第 2 轮 – 技术 1

在这一轮中,测试了我的基本编程技能、操作系统概念和计算机网络概念。

编码

解释在两个链表中寻找交点的逻辑和实现(https://www.geeksforgeeks.org/write-a-function-to-get-the-intersection-point-of-two-linked-lists/) .

我解释了两种方法,

  1. 使用额外的空间,即使用 HashSet,添加第一个列表的所有元素,然后添加第二个列表中的元素。每当我们找到一个已经存在于 HashSet 中的元素时,我们就会找到交点。

显然,面试官要求我不要使用额外的空间。所以我解释了另一种方法,

  1. 查找两个链表的长度并找到两个长度之间的差异“d”。通过 'd' 遍历更长的链表,然后一起遍历两个链表,并在每次迭代中检查两个节点是否相等。如果它们相等,我们就有了交点。

他对这个答案很满意,但他不想做这么多手术,所以他问我另一种方法。当我在考虑解决方案时,他问我是否可以检测到链表中的循环。在我告诉他使用快速和慢速指针进行循环检测后,他问我是否可以在第一个问题的解决方案中使用循环检测。答案是将链表的最后一个节点连接到任何链表的第一个节点,这只会在链表中创建一个循环,问题归结为在链表中找到循环节点。

操作系统

面试官问我

  • 优先级反转和解决方法
  • 用例子解释竞争条件、死锁、临界区问题
  • 关于线程和进程的问题
  • 设计他编写的 C 程序的内存布局

计算机网络

他让我解释 TCP/IP 协议套件的所有层,并深入到数据链路层(其中使用的职责和方法)。

项目——面试官让我详细解释我的一个项目。

第 3 轮 – 技术 2

这一轮也是关于编码和操作系统。

编码

面试官让我解释和编写这个 https://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/ 问题的生产级代码。

操作系统

  • 在共享内存系统上被问了很多问题(比如不同场景下进程之间的内存是如何共享的)
  • 我不完全记得这个问题,但它类似于 - 如何复制两个时钟的内容,其中一个时钟每毫秒更改一次,而另一个时钟在两个寄存器中每秒更改一次,而不使用任何临时寄存器。我无法正确回答,但他对我的思考过程感到满意。
  • 还有几个关于虚拟内存和分页的问题。

人力资源轮

最后一轮看起来很正式,HR只是让我自我介绍,询问我对工作和地点的偏好。我还问了一些关于高通的问题以及我将在那里做的工作。

最后结果

收到工程师(软件)职位的安置邀请。