📜  SalesForce 2021 年校内实习面试经验

📅  最后修改于: 2021-11-10 07:05:45             🧑  作者: Mango

Salesforce 在 2020 年 9 月的第一周访问了我们的校园 (MNIT Jaipur),提供了为期 2 个月的暑期实习,该实习将于 2021 年 5 月和 6 月进行。

编码回合(75 分钟) HackerRank:

  • 给定一个整数数组,将每个数字替换为数组中频率大于它的最近的正确数字,如果不存在这样的数字,则将其替换为 -1。下一个更大的频率元素
  • 找出二维矩阵中最大岛屿的大小。它类似于下面的问题,但略有不同。查找岛屿的数量
  • 这个问题首先解释了张量的定义(如果你根本不了解张量也没有问题),他们给出了两个维度为 N x N x N 的 3-D 矩阵作为输入,并要求乘以顶部A 的 2 个轴和 B 的底部 2 个轴,并以 N x N 2-D 矩阵的形式输出它们。
    例如:假设有两个维度为 2 x 2 x 2 的 3-D 矩阵。
A={  { {1,2},{3,4} },  { {1,2},{3,4} }  }
B= { { {1,2},{3,4} },  { {1,2},{3,4} }  }
Then the top two axes and bottom 2 axes of 
A and B can be represented in the form of 2-D 
matrices A' and B' as 
A'={{1,2,3,4} , {1,2,3,4}}  
B'={{1,2},{3,4},{1,2},{3,4}} 
now multiplying these two matrix will give 
output as 
Answer: {{22,32},{22,32}}

我能够在 35 分钟内解决所有问题,这对我在面试中起到了加分作用。
在大约 100 名学生中,有 14 人入围了下一轮。

从这里开始的所有轮次都在 Google Meet 和 Codepair 上进行,每轮都有一个面试官。

技术面试 1(45 分钟):

  1. 查找具有相同数字集的下一个更大的数字。
    首先我给了他一个使用归并排序的 O(n*log(n)) 方法,然后他让我将它优化为 O(n),所以我使用计数排序而不是归并排序,然后他问我关于基数排序的问题,是时候了复杂。
  2. 重新排列字符中的字符串,使得没有两个相邻的字符相同。
    面试官真的很有帮助,他给了我一些提示,并给了他正确的答案。

在这轮比赛之后,14 名学生中有 10 名被选中参加下一轮比赛。

技术面试 2(50 分钟):首先,面试官通过询问上一轮面试和编码轮让我感到舒服,他还看了我的时间和我在编码轮中的解决方案。

  1. 他从 OOPS 开始,问我如何在我的大学中使用 OOPS 的概念来维护我大学不同分支之间的相互依赖,因此我在使用继承和友元函数的帮助下向他解释了一些方法,然后我向他解释了这一点仔细一看,他还挺满意的。
  2. 他让我写一个算法,从一个哈希图中删除所有的传递关系,其中键是一个字符串,映射的值是一个字符串数组。
    例如:让地图键值对是这样的。
A->B,C,D,E 
B->F,G 
G->H 
S->T 
So the final content after removal of all the transitive 
relations in the hashmap will be: 
A->B,F,G,C,H,D,E 
S->T 
I used recursive DFS to solve this and he was satisfied 
with my answer.
  1. 他让我编写一个算法,用于评估以字符串形式给出的数学表达式,该字符串由基本算术运算运算符+、-、* 和 / 组成。
    我给了他一个使用解析树和最左推导的算法,然后他让我扩展我的算法来处理特殊的函数,比如 log、sqrt 和 pow,所以我使用哈希图来扩展它来存储特殊的关键字,他对我的方法很满意。
  2. 他让我实现一个给定大小的缓存。

面试官真的很有帮助,每当他觉得我紧张时就让我放松。
在这轮比赛之后,每 10 名学生中有 5 名被选中参加下一轮比赛。

HR 面试(45 分钟):面试官首先问了我今天的一天,以及我在大学学习的所有科目以及我最喜欢的科目。
然后他问我对公司的期望是什么,他还谈到了我在之前所在的大学俱乐部中的角色。之后,他问了我的项目,我用大约10分钟的时间详细解释了项目和使用的技术。然后他问了我一些关于OOPS的关于函数重载、函数覆盖、函数隐藏、虚函数和继承的问题。

之后,他问我关于C和C++中指针的使用。他还问了我使用过的数据结构,然后让我使用队列实现堆栈。然后他给了我一个情况,如果我是一个团队的负责人,我们有一个截止日期来完成一项任务,我的一个团队成员因为一些问题不得不离开,那么我将如何处理这种情况。在这之后,他问我是否有什么问题要问,所以我问了他几个关于我在公司的角色以及如果我被选为实习生我将从事的技术的问题。

这一轮之后,3名学生被选中并获得了实习机会,幸运的是,我是其中之一。