📌  相关文章
📜  Arcesium 高级软件工程师面试经验

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

Arcesium 高级软件工程师面试经验

在线编码轮 (HackerRank): 3 个编码问题,时间限制为 1 小时。

  1. 给定一个二进制字符串,找到使二进制字符串交替的最小替换次数
  2. 从 1 到 N 有 N 个产品编号。有两个编号 X 和 Y。有两种类型的折扣 $A 和 $B。如果 i(项目的索引)可被 X 整除,则给予 $A 的折扣。如果 I(项目的索引)可被 Y 整除,则给予 $B 的折扣。如果 i(项目的索引)可整除通过 X 和 Y,可以给予 $A 或 $B 折扣。您需要计算所有商品的最大折扣。
  3. 给定字符串小写字符和一个以键值对作为字符的字典。将字符串中的所有字符(作为字典中的键存在)替换为其对应的值或将字符串中的所有字符(作为字典中的值存在)替换为其对应的键。

例子:

if string is ‘abc’ and the dictionary has pair
{‘a’:’c’}, then replace all ‘a’s with ‘c’ and all ‘c’s with ‘a’.

第1轮:

  1. 快速介绍
  2. OOPS(什么是接口?什么是抽象?)
  3. 什么是哈希映射?什么是哈希表?
  4. 什么是同步?它是如何在Java中实现的?
  5. 给定一个根节点,编写一个算法来给出对树的左视图有贡献的节点列表。
  6. Java中的垃圾回收是什么?什么时候调用?它是如何工作的?
  7. Java中的ExecutorService是什么? Java中的CompletionService是什么?
  8. 有一家老杂货店。他们有一个旧的计算机系统,该系统使用链接列表添加客户信息(客户手机号码和客户姓名)并通过手机号码检索信息。当客户来到 Shope 时,我们会询问他们的电话号码并从系统中获取客户信息。如果不存在,我们会询问名称并添加信息。也有很多常客。系统已经有很多记录,所以检索变得很慢。现在,您需要更改添加和检索逻辑,以便我们可以提高性能。你不能改变数据结构。我为不同的场景提供了不同的策略,并分别讨论了:
    • 每当我们在链表中找到客户时,我们将该节点移到第一个。我们在列表的开头添加新客户。
    • 我们保留新插入的插入点。就在逻辑更改之后,它将位于列表的开头。每当我们在链表中找到客户时,我们将该节点移到第一个。每个新插入都在插入点。每当有回头客时,新插入将向右移动一个位置。这样,插入点左侧的所有节点都将是最近访问过的客户。因此,最近也会拜访一位新顾客,但最后一位顾客只去过商店一次。
    • 每次我们检索客户信息时,我们都需要将节点提前 2-3 步。

    我已经讨论过,每项政策都倾向于特定的情况。

    例如,1st 是假设新客户将再次访问商店。 2、新客户不再来访。第三,总体政策,我们正在逐步增加位置。面试官很满意。

  9. 您收到客户的反馈,说您的服务已经慢了 2 个月,2 个月前还好。你将如何调试这个?这个问题是一个非常笼统的问题。他想看看当我必须调试某些东西时我采取了哪些步骤。例如,检查该函数过去 2 个月的提交情况等。
  10. 你如何审查代码?

这一轮持续了75分钟。

第 2 轮:在一个集会中,同一班的学生按身高递增的顺序站在同一排。每个班有 N 个班和 K 个学生。您需要为学生提供以下两项政策:

  • 该集合应包含每个班级至少一名学生。
  • 集合中最大高度和最小高度的差异应该是最小的。

这一轮持续了60分钟。

第三轮:

银行系统的面向对象设计。银行有不同种类的账户。账户具有取款、存款、计算余额、计算利息功能。并非所有帐户都具有所有这些功能。例如,经常账户没有计算利息函数。面试官更想知道我是如何设计班级结构的。

SQL问题:

t_产品:

P_id , P_name
1,     OnePlus 6T
2,     OnePlus 7
3,     Oppo F7

t_交易:

P_id, Date,     Quantity
2,    8/1/2020, +20
1,    8/1/2020, +10
2,    8/2/2020, -2

零售商有这两张桌子。交易表中的 +Ve 数量显示,零售商从供应商处购买的物品。 -Ve 交易表中的数量显示,零售商出售的物品。给定一个日期,编写一个 SQL 查询以提供该日期之前的当前库存(产品名称,数量)。

回答:

Select t_Product.P_name as Product_Name,
SUM(t_Transactions.Quantity) from t_Product 
inner join t_Transactions where t_Product.P_id 
= t_Transactions.P_id AND t_Transactions.Date. 
<= @date GROUP By Product_Name;

这一轮持续了60分钟。

第 4 轮(人力资源轮):

  1. 快速介绍
  2. 关于家庭的信息
  3. 你为什么要离开你现在的组织?
  4. 为什么要加入Arcesium?
  5. 您在短时间内离开了您的组织。说服我为什么我不相信你会对 Arcesium 做同样的事情。
  6. 预期的 CTC。

雇用!蓝牛仔平台上的面试过程是远程的。它很快而且安排得很好。刚完成一轮在线编码 2-3 小时后,我收到了来自 Arcesium 的邮件,安排了第一轮面试。平均而言,每一轮都安排在 2-3 天之间。录用信是在 HR 面试一周后发出的。因此,面试过程大约需要 15 天。