第1轮(DSA) :为以下程序编写代码,优化并推导时间复杂度:
- 给定到达火车站的所有火车的到达和离开时间,任务是找到火车站所需的最少站台数量,以便没有火车等待。
我们得到两个数组,分别代表停靠的列车的到达和出发时间。
Input: arr[] = {9:00, 9:40, 9:50, 11:00, 15:00, 18:00} dep[] = {9:10, 12:00, 11:20, 11:30, 19:00, 20:00} Output: 3 Explanation: There are at-most three trains at a time (time between 11:00 to 11:20) Input: arr[] = {9:00, 9:40} dep[] = {9:10, 12:00} Output: 1 Explanation: Only one platform is needed. 2.
- 为 n 叉树生成镜像树。
第二轮(编程/设计):
- 使用 2 个微服务来设计一个完整的员工管理系统,用于更新读取和创建员工信息。
一种。为其定义控制器/API。
湾应该使用什么数据库?为什么? DB中要使用的数据类型?原因?定义数据库架构。为所有可能的操作编写 SQL 查询。
- HashMap 的内部工作。 :(解释了工作原理以及 equals() 和 hashCode() 方法如何发挥作用)
后续问题:为上述系统中的每个员工条目实现hashCode,以免发生冲突
- 给定一个数字 S。给定一个由 n 个数字组成的数组。查找数组中是否有 2 个元素使得 sum 等于 S。如果存在,则返回索引。预期时间复杂度 O(nlogn)
第三轮(招聘经理轮):
- 解释Java的ExecutorService。解释线程池和工作。
我们应该如何确定用于不同类型操作的线程数。
关于 CPU 密集型和 io 密集型操作的说明。
- 解释Java 8的所有新特性。
(功能接口 – lambda、 Java流、日期时间 API、接口中的默认方法等)
- 关于Java HashMap 的问题。在最新版本的Java内部工作发生了怎样的变化。
- 项目相关问题。在项目上工作。使用的技术栈。
- 与Java堆栈溢出和递归构造函数相关的问题。
- 行为问题。