面试针对 Azure 团队 IDC Hyderabad。共有9名候选人来了。
第1轮:
2->7->8->11
|
13->16->17->21
|
22->23->27->29
|
30->32
上面给出的排序链表,其中每个节点左右有 2 个指针。对于每一行起始节点向下指向下一行开始。每行有 4 个元素,除了最后一个可以有 <= 4 个元素。下一行开始元素大于前一行结束元素。我们需要为它设计和编码在正确位置插入新值和删除操作。 8 进入下一轮。
第二轮:
- 什么是内存层次结构?
- 虚拟内存和物理内存的区别?
- 缓存如何工作?
- 如果找不到值,在缓存中插入值的不同算法是什么?
- 线程同时访问相同的变量。如何在处理器级别为它们分配值?
- 为缓存实现 LRU 算法。我在 O(cache_size) 中做到了。期待更优化的方法。
- 从头开始编写哈希函数。即使键是整数、字符串等。在 O(1) 时间内处理。并以尽可能少的内存映射到值。
第 3 轮:
- 在云端实施计费设计。任何第三者都可以使用它并在那里实施计费系统。
- 编写单例类实现。
- 库存时间问题。按时间给予股票。我们需要知道什么时候可以购买股票。所以我们永远不会丢失并为其编写所有测试用例。
- 实现后序遍历。
- 为什么是微软? 4 人被选为管理轮。
管理:
- 当我们点击 chrome 中的 + 按钮并打开新标签页时,会发生什么。
- 当给定源、目标指针时,在 c 中从头开始实现 memcopy。还给出了来源的大小。我用于循环和取消引用复制。如果目标指针位于我们正在复制的源块中,则忘记实现极端情况。被拒绝了。