📜  SDE II 的 PayPal 面试体验

📅  最后修改于: 2021-11-21 06:16:33             🧑  作者: Mango

第 1 轮(数据结构和算法):自我介绍(5 分钟)

之后,他们问了下面的

  1. 找到出现多次的元素(https://www.geeksforgeeks.org/array-elements-that-appear-more-than-once/)
  2. 查找数组中出现次数超过 n/k 次的所有元素。(https://www.geeksforgeeks.org/print-all-array-elements-appearing-more-than-nk-times/)
  3. 给定 2 个节点,使用父指针查找 LCA。我给出了一个基于 HashMap 的解决方案来存储所有路径,直到从根开始的 2 个节点。他们想要一个空间优化的版本,所以跟踪父指针并检查祖先。类似于链表的交点(https://www.geeksforgeeks.org/lowest-common-ancestor-in-a-binary-tree-set-2-using-parent-pointer/)

第 2 轮(系统设计和 DSA):对当前项目架构的深入描述。需要进行各种权衡。

  1. 解释断路器模式: https : //microservices.io/patterns/reliability/circuit-breaker.html
  2. HashMap 的内部实现: https : //www.geeksforgeeks.org/internal-working-of-hashmap-java/
  3. HashMap、HashTable 的区别。哪个是线程安全的,为什么?
  4. Spring 与 Spring 引导框架(如我的简历中提到的)
  5. Completable future、lamba 表达式、 Java 8+ 中的流

建议:在回答这些问题时要非常谨慎,面试官有很多深入的知识。

第 3 轮(管理轮):这是一场艰难的比赛。从当前项目开始,并在我的设计中进行了各种权衡。为什么我们在这里的代码中使用这种设计模式。底层架构有什么优势(我们用过:Hexagonal Architecture)

  1. 合并 K 个排序列表。 (https://www.geeksforgeeks.org/merge-k-sorted-linked-lists/)
  2. 讨论minHeap和maxHeap的内部结构
  3. 最快的排序算法 (https://medium.com/javarevisited/sorting-algorithms-slowest-to-fastest-a9f0e30937b9)
  4. 给定具有不同元素的多个文件,如何将它们分类为一个文件(不使用额外空间)。 https://www.geeksforgeeks.org/external-sorting/
  5. 设计一个可以有效执行 CRUD 操作的 RESTFul Web 服务
  6. @Controller 和 @RestController 的区别
  7. WebService 与 REST API
  8. Spring Boot 如何解决 Spring 无法解决的问题

提示:不要尝试直接跳转到代码。先和面试官商量。不要虚张声势,因为他们是知识渊博的人。

第 4 轮(人力资源和文化契合度):

  1. 工作地点,抱负,抱负。薪酬与福利。

判决:选择