📌  相关文章
📜  SDE(校外)Josh 技术面试经验

📅  最后修改于: 2021-11-18 02:01:12             🧑  作者: Mango

线上选拔测试:共分三个阶段,均在同一天进行。

  • 第一阶段(MCQ ROUND):这一轮由 50 个关于 C 编程语言的 MCQ 组成,我们有 50 分钟的时间来解决 50 个问题,这个阶段还有一些基于输出的问题,我们得到了一个代码片段,我们应该输入该程序的输出。基于输出的问题没有负面标记,而 MCQ 问题有负面标记,如果您尝试大约 30 个问题,您将进入下一轮的候选名单。
  • 阶段 2(主观回合):这一轮有 3 个编码问题和一个基于输出的问题,他们主要关注树,所以如果你想破解 Josh,请练习大量基于树的问题
    问题:
    1. 给定一个表示为链表的数字,我们应该将这个数字乘以 4。
    2. 找出最长的交替奇偶子数组的长度
    3. 给定一棵树,我们需要返回一个列表,该列表表示应该在每个级别添加的最小数量,以便每个级别的节点之和形成一个 AP
    4. 这是一个基于树的基于 C 输出的问题
  • 第三阶段(编码回合):这一轮有三个编码问题,它们很简单
    1. 买卖股票以最大化利润 这是一个标准的 DP 问题
    2. 给定一个链表应该通过节点本身的总和和第 (nk) 个节点的总和来更新每个节点的值
      e.g. 31->2->3->4->5->11->50  Output :  42->13->8->4->8->13->42
    3. 给定一棵树,我们需要检查这棵树是否平衡,即 |左子树的高度 – 右子树的高度| <= 1

技术轮:我是在线测试后直接进行了第二次面试,而很多人也进行了第一次技术面试,所有轮次都完全集中在树木上

面试第二轮:这一轮问了三个问题,都是基于树的

  • 给定一棵树,每个叶子到根的路径代表一个数字,我们应该返回树中形成的所有数字的总和

在它的情况下形成的数字是 123,543 和 643 并且代码的最终输出应该是 123+543+643=1309在 O(N) 时间和 O(1) 空间

  • 给定两个 BST,我们应该从 O(1) 空间中的两个最佳组合中打印节点的排序顺序,并且发现每个节点都引用了其左子节点、右子节点和父节点
  •  给定一个 BST 和一个范围,我们需要删除所有不在范围内的节点,结果树也应该保持 BST 的条件

面试第三轮:

  • 给定一个 BST 和一个目标值,我们需要将 BST 分成两个 BST,使得所有小于或等于目标值的节点都在第一个 BST 中,而其他节点在O(logn) 时间和 O( 1)空间
  • 给定一个反 BST 和一个目标值,我们期望返回O(1) 空间中与目标值相距 K 距离的所有节点的总和
  • 我最近参与的一个项目

人力资源回合:

  1. 到目前为止的体验如何
  2. 难度是多少
  3. 你是如何准备回合的
  4. 你是谁
  5. 你的弱点
  6. 如果给你很多工作,你会如何应对压力
  7. 你有其他公司的offer letter吗