📜  Arcesium 上证所面试经验 | 2年以上经验

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

Arcesium 上证所面试经验 | 2年以上经验

模式:招聘人员在 LinkedIn 上联系了我

公司:Arcesium

职位:高级软件工程师

地点:班加罗尔

流程:招聘人员通过邮件与我联系,并发送了一个包含三个问题的在线测试(Hackerrank)链接。我能够完全解决 2 和部分解决 1。几天后,我收到了招聘人员的电子邮件,要求安排虚拟面试。共 5 轮,包括 1 轮在线测试(HackerRank)+2(DS/Algo)+ 1 轮招聘经理(技术 + 管理)+ 1 轮 HR。

第一轮:在线测试

测试平台:HackerRank,60 分钟,3 个问题

难度级别:中等

  • 数组所有子集的最大值的乘积
  • 猫的队伍:猫需要尽快穿过隧道。猫可以自己穿越隧道,也可以背着其他猫穿越。有时间单独和背着猫穿过隧道。找出从隧道中穿过所有猫的最短时间。
  • 流分布:网络以完美二叉树的形式给出,计算可以发生在叶子节点,而其他节点(分布节点)将数据流分发到叶子。有两种类型的分布——拆分和并行。
splitting Node - it splits the data into equal halves to the child nodes. 
For Ex: [1,2,3,4] will split into [1,2] and [3,4] to left and right child.

Parallel Node - it splits the data into alternating halves to the child nodes. 
For Ex: [1,2,3,4] will split into [1,3] and [2,4] to left and right child
  • 给定每个叶节点接收的输入流和分布节点的详细信息,我们需要在网络的根部找到原始数据流。这可以使用反向级别顺序遍历来解决

第 2 轮: 1 小时(DSA + 编码轮)

本轮有2名面试官。一个是2年的经验,另一个是资深成员。他们先是自我介绍,然后询问我的情况。然后他们继续面试问题:

  • 积小于 k 的子集数
  • A 必须重复的最小次数,使得 B 是它的子序列,其中 A 和 B 是字符串。类似的东西。
  • 什么是单例类?创建一个单例类。
  • 详细解释项目的任何方面。
  • Java中的垃圾回收是什么?什么时候调用?它是如何工作的?
  • 什么是同步?它是如何在Java中实现的?
  • 多线程。

结果: 我能够给出第一个问题的蛮力解决方案和第二个问题的最佳解决方案。我的其他概念很清楚,并且能够详细解释它们。 3-4天后,他们安排了我的下一次面试。

第 3 轮: 1 小时(DSA + 编码轮)

一架 SDE-2 拦截了它。他的沟通和技术能力非常出色。采访从他的介绍开始,然后是我的介绍。

  • 最大总和增加子序列实践问题链接。
  • 停车场设计。
  • SQL 然后他问了 2 个基于 SQL 的问题。
    • 第二高的薪水。
    • 另一个是复杂的基于自联接的查询,我不记得确切的问题,但我能够给出正确的答案。

结果:他对我的回答感到满意,3-4 天后,我接到招聘人员的电话,要求安排我的 HM 轮次。

第 4 轮: 1 小时(招聘经理)

一位工程经理接手了这个。采访从他的介绍开始,然后是我的介绍。

  • 然后,他问了我在我现在公司的项目问题(最后讨论得很开心)
  • 他给了我一个用Java 8 编写的代码片段,并要求我在编码设计方面找到代码中的缺陷,我将如何解决这个问题?它基于Java 8 中的函数式接口和 lambda 表达式。
  • 他给了我下面的代码片段并让我进行代码审查。这是一个开放式问题,我们对此进行了很长时间的讨论。
Java
public class MAver {
  
    int windowSize;
  
    List values;
  
    public MAver(int windowSize)
    {
  
        this.windowSize = windowSize;
  
        this.values = new ArrayList();
    }
  
    public void add(int value) { values.add(value); }
  
    public double GetAverage()
    {
  
        ouble x = 0;
  
        for (int i = 0; i < values.size(); ++i) {
  
            x += values.get(i);
        }
  
        return x / values.size();
    }
}


  • 给定两个区间列表,找到这两个列表的交集。每个列表由不相交的间隔组成,按开始时间排序。
Input: arr1=[[1, 3], [5, 6], [7, 9]], arr2=[[2, 3], [5, 7]]

Output: [2, 3], [5, 6], [7, 7]

Explanation: The output list contains the common intervals between the two lists.

第 5 轮: 30 分钟(HR 轮)

  • 简要介绍一下你自己。
  • 为什么要离开现在的公司?
  • 为什么选择Arcesium?
  • 您对 Arcesium 有什么期望?
  • 基本的人力资源问题。
  • CTC 讨论:他们试图根据我目前的 CTC 进行谈判。

判决:选定