SAP Labs 面试经验 | FTE 校园 2020(虚拟)
SAP 实验室来到我们的校园,面试实际上是由于 COVID-19 的情况而进行的,总共进行了六轮,他们所看到的只是我们如何解决问题。
第1轮(在线测试):本轮时间为1小时,考试在Hackerrank进行。有三个部分。
第 1 部分(5 个 MCQ):
- 分析时间复杂度。
- 变量的定义。
- 正确初始化数组。
- 分布式系统的特点。
- c中的malloc函数在什么时候分配内存?
第 2 部分(5 个 MCQ):
- JavaScript函数的输出
- 从前序和后序遍历中查找中序遍历
- 消息队列的定义
- C++ 构造函数初始化
- 给定 R(A, B, CD) 和函数依赖是 A->B 和 C->D 。将 R 分解为两个不同的模式 R1(A, B) 和 R2(C, D) 是?
第 3 部分(2 个编码问题):
- 给定一个整数 k 和一个整数列表,计算列表中不同的有效整数对 (a,b) 的数量,其中 a+k=b。两个整数对 (a, b) 和 (c, d)如果 (a,b) 的至少一个元素不属于 c,则认为是不同的。
Input : n=4 ,k=1
Numbers-[1,1,1,2]
Output: 1
我使用了 HashSet 来避免重复,并检查哈希中的元素加 k 是否存在于 HashSet 中,如果存在,那么我增加了计数并最后返回了计数以及所有通过的测试用例。
- 给定一个整数数组,执行一些 k 次操作。每个操作都包括从数组中删除一个元素并将其除以 2 并将该结果的上限插入回数组中。最小化最终数组中元素的总和。
Input : nums[10,20,7] k=4
Pick | pick/2 | ceiling | Result
Initial array [10,20,7]
7 3.5 4 [10,20,4]
10 5 5 [5 ,20, 4]
20 10 10 [5 ,10, 4]
10 5 5 [5,5,4]
The sum of the final array is 5+5+4=14 and the sum is minimal.
Output: 14
我已经构造了 maxheap 以每次获取最大元素并从堆中删除该最大元素并除以 2 并将元素添加到堆中,重复相同的操作直到 k 这样做我在末尾找到了最小元素第 k 次迭代。
ROUND 2(Code Pairing):本轮时间为30分钟,考试在Hackerrank codepair上进行。我问了 1 个编码问题和一个 SQL 查询。他说他看过我的hackerrank、Github、leetcode profile,以及我在简历中提到的项目,印象深刻。由于我们有 30 分钟的时间,我们没有进行介绍,而是继续解决问题。
编码问题:给定一个整数数组,其大小为 n ,我需要通过将数组元素加一来更改任何 n-1 个字符,在一次迭代中重复执行此操作,最后,所有数组元素应该具有相同的价值。返回实现此目标所需的迭代次数。
Initial array: [2, 3, 5, 5, 4]
我最初发现了一种模式,就像我可以通过将所有数组元素增加一来改变所有数组元素一样,除了该数组中的最大元素。我已经对此进行了编码,并且一些测试用例没有通过。但他对我的方法感到满意,并要求继续下一个问题。
SQL查询:给定一个国家表和那个国家的人口,你必须打印国家名称和人口,这样人口应该是偶数,国家名称应该按升序打印,国家应该大写.
我已经解决了这个问题并选择了下一轮。
ROUND 3 (Tech Round):本轮时间为 30 分钟,考试在 Microsoft Team 举行
- 抽象类的实现:这里是一个 Dog 类,它有两个方法 speak 打印 bow bow 和 walk 打印 walk。有一个 Cat 类,它有两种方法:speak 打印 meow 和 walk 打印walking。有一个消费者类,它有一个 Act 方法,它应该根据传递给吃的对象调用 speak 和 walk 方法。换句话说,如果你传递 Dog 它应该调用 dogs 方法,如果你传递一个 cat,它应该调用 cat 方法。您设计解决方案的方法是什么这是问题,我希望使用抽象类来做到这一点,后续问题是接口和抽象类之间的区别。
- 设计模式:他问了我知道的设计模式,我已经说过单例、工厂设计模式和链责任定理,然后他问我在哪个实时场景中你会使用单例和工厂。我提到了一些,他对此表示满意。
- SQL查询:某公司将其员工的信息存储在EMPLOYEE表中。编写一个查询以打印 EMPLOYEE 表中工资超过 500 美元的所有员工的姓名和工资。按员工姓名中最后三个字符的升序对结果进行排序。如果两个或多个员工的姓名以相同的三个字符结尾,则按薪水的降序对他们进行排序。即使有两个或更多的员工获得相同的薪水,也可以按 ID 升序对这些员工进行排序。
Sample Input:
EMPLOYEEID NAME SALARY
1 Candice 4685
2 Juliana 2253
3 Scarlet 2350
4 Illeana 1151
Sample Output:
Juliana 2253
Ileana 1151
Candice 4685
Scarlet 2350
他问我是否有任何问题,我问他 SAP 中更具挑战性和有趣的项目,他回答了。下午 3 点,我收到邮件说我已经和其他三个学生一起通过了这一轮,下一轮是管理轮 1。
第 4 轮(管理第 1 轮):这一轮的持续时间为 15 分钟,考试在 MS 团队中进行。两位经理在这一轮采访了我,我问了这样的问题,
- 那天过得怎么样?
- 整体面试体验如何?
- 第一轮感觉如何
- 这是你的第一次面试吗
- 你为什么想在 SAP 工作
- 我做过的有趣的项目,我详细解释了
- 您喜欢与哪个角色一起工作(开发人员或测试人员或客户服务)
- 为什么需要对软件环境进行升级
- 您如何管理服务器故障
- 搬迁到班加罗尔可以吗
- 你的大学成绩低于你的学校成绩,从农村搬到城市是你大学成绩下降的原因。
- 如果你被选中,你会在第一天加入公司还是需要一些时间?
下午 5 点 20 分,我收到邮件说下一轮管理时间是下午 5 点 50 分到 6 点 10 分
第 5 轮(管理第 2 轮):这一轮的持续时间为 15 分钟,考试在 MS 团队中进行。这是一个正常的讨论回合,开始于我的简要介绍。
- 那天过得怎么样?
- 两个优势和两个需要改进的领域,以及你是如何做到这一点的。
- 您在担任领导职务期间遇到的问题。
- 你多久来一次你的家乡
- 宿舍生活中的美好一天是什么,为什么?宿舍生活中的糟糕一天是什么?
- 除了学术,你空闲时间会做什么
- 你为什么喜欢在 SAP 工作
晚上 7 点,我被要求参加最后的 hr 回合。
第6轮:(HR决赛):本轮时间为20分钟,考试在MS团队中进行。
- 告诉我我在简历中提到的你的成就。
- 我在 COVID-19 情况下面临的困难。
- 在线课程进行得如何?
- 兴趣范围。
然后我被告知我将在第二天或两天后得到结果。