Salesforce 来到我们的校园招聘实习生。每轮提出的问题如下。
编码回合——这一回合有 3 个问题需要在 90 分钟内完成。
- 给出了一个 n*m 的灯泡网格。有些打开(用“O”表示),有些关闭(用“X”表示)。当您切换灯泡的状态时,与其相邻的灯泡的状态也会切换。返回关闭所有灯泡所需的最小切换次数,如果不可能,则返回 -1。 n、m 上的约束是 18。我使用 BFS 解决了这个问题,如果两个状态之间只有一个切换,则它们是连接的。这通过了 6 个测试用例中的 5 个并给出了一个 TLE。
- 给出了一个数组 color[],其中 color[i] 表示铅笔必须着色的颜色。每种颜色都有一个画笔,我们不得不等待 b 秒才能再次使用相同的画笔。原谅 b 和 color[] 找到为所有铅笔着色所需的最短时间。基于计算每种颜色所需时间的基本贪婪解决方案足以通过所有测试用例。铅笔的数量,不同颜色的数量,所有这些都少于 100。
- 给出了目标价。给出了具有外壳价格和浇头价格的两个数组。相同的浇头最多可以使用三次。我们必须制作一个价格最接近目标价格的比萨饼。价格也可能高于目标价格。但如果出现平局,我们就必须返还较低的价格。我迭代了地壳价格,并通过回溯找到了最接近剩余金额的值。这足以通过所有测试用例。结皮数少于10个,浇头数少于18个。
能够解决2个问题的学生被召集进行面试。 20名学生被要求参加面试。
第一次面试:面试官先自我介绍,然后让我做自我介绍。这部分在 5 分钟内结束。然后他给了我这个问题。在给我这个问题之前,他告诉我,重要的是方法,我们将讨论不同的方法并比较它们。问题是生成没有重复字符的给定字符串的所有排列。我立即给了他一个方法并写了一些伪代码。然后他让我在我做的一个小例子上试运行。然后他提出了另一种方法,我们对此进行了讨论。然后我告诉他为什么他的方法比我的第一种方法略好,他印象深刻。然后他让我实施他的方法,我做到了。他运行了代码,第一次尝试就成功了。
然后他继续问了一些其他的问题。他问我什么时候使用抽象类,什么时候使用接口。我给了他一些通用的区别点,他很满意。然后他问我是否了解设计模式。我说我用过 spring,所以我听说过依赖注入,但我不是专家。下一个问题是关于数据库索引的,我告诉他我们在大学里还没有讨论过这个话题。他微笑着结束了采访。
20分钟后,我被要求进行下一次面试。 17名学生被要求进行第二次面试。
第二次采访:类似的介绍内容。这只是一次编码面试。他给了我两个问题。第一个被赋予一组边,构造一个周长最大的三角形。这很容易。我告诉他我会对数组进行排序并从最后一个元素开始以三个为一组进行检查。我告诉他我们只需要检查三个连续的元素。由于 A[i] <= A[i+1] <= A[i+2],我们需要满足的唯一不等式是 A[i]+A[i+1] > A[i+2],如果满足这个条件,我们应该立即返回,否则没有必要保留 A[i+2] 作为 A[i] 之前的任何元素都不会帮助我们获得更大的和。他对这个答案没意见,但问我是否可以在 O(n) 中完成。一开始我不能,但后来他给了我使用priority_queue的提示。我无法立即得到提示,但最终得到了他想让我做的事情。我说过我们可以在 O(n) 中堆化数组,然后对前 3 个元素做同样的事情。
然后我们继续下一个问题。给出了一个字符数组,必须将其视为字母的自然顺序。在此之后返回给定的单词列表是否已排序。我说我会创建一个替代列表,其中第一个字符将替换为“a”,第二个字符将替换为“b”,依此类推。他承认我在正确的轨道上,但要求我在记忆方面改进我的方法。我采取了一个小提示,然后重载 <=运算符以根据给定的顺序比较字符串。他很满意,面试就结束了。
一个小时后,我被要求参加 HR 回合。 12 名学生被要求进行 HR 面试。
第三次采访:这是一个非常冷静的回合。面试官介绍了自己,我也做了同样的事情。他把我的简历放在他面前,让我解释一下我在简历中提到的开源贡献。我深入研究并解释了大约 10 分钟。他没有问任何后续问题。然后他问我关于我的项目。我向他解释了我的两个项目,他很满意。然后他问我在制作项目时我们面临哪些挑战。我已经为这些问题做好了准备,所以我能够给出一个很好的答案。然后他问单独工作和团队工作有什么区别。我给了他一个关于团队精神和测试等的通用答案。然后他问我对企业界有什么期望。然后他让我设计一个像 Flipkart 这样的系统。我列出了一些功能并编写了一些表格。我谈了大约 10 分钟,然后告诉他我没想到在实习招聘面试中会问到有关系统设计的问题。他说他只是想看看我是如何解决问题的,显然没想到我会在 10 分钟内设计出 Flipkart。然后一轮就结束了。
结果当天公布,包括我在内的4名学生被选中参加实习。
PS:如果你不是超级天才或超级幸运或超级努力,你肯定会面临一些拒绝。在进入 Salesforce 之前,我自己被 4 家公司(有 6 位数的津贴)拒绝了。相信你自己和你的努力。我知道这说起来容易做起来难,但请相信这个过程。你最终会得到你应得的。