Salesforce 实习面试体验 -2021(校内)
第 1 轮(75 分钟):
- 二进制搜索问题(最小化字符串类型中的窗口长度,实践中提供类似问题。gfg)。
- 给定一个长度为 N 的数组,其中包含 (S, M, L, XL) 的大小,返回可以放置在 2 个容器中的珠子的最大数量,条件如下:
每个容器可以有多个相同大小的珠子。从任何大小的珠子开始。一旦你开始了,你就不能跳过序列中的珠子。当你必须选择第三个尺寸的珠子时停下来。
我在 30-35 分钟内解决了这些问题,这给了我在接下来的几轮比赛中的一些优势,因为他们没有要求我写下代码。
第二轮(55分钟):这一轮以我的简短介绍开始,大约3-4分钟。然后他问我适合哪种语言。我告诉他 C 和 C++ 用于编码和设计,js 用于网页设计, Python用于数据科学。所以我们继续使用 C++。然后他想出了两个编码问题。
给定一个类型为“string1/string2/string3/string4…..”的字符串
我必须从中删除“string3”。
我给出了一种方法,首先我们需要到达第二个“/”,然后开始在答案字符串中附加字符,直到遇到第三个“/”。然后他告诉我为它编写代码。我这样做了,但其中有一个错误,他给了我时间解决,我很快就解决了。
从数字数组中找出第二个最大元素。
我给出了一种在遍历数组时保持最大 2 个变量和最大 2 个变量的方法。
然后他告诉我将它推广到第 K 个最大元素。我向他解释了我在许多方法中的方法,例如使用 n*log(n) 排序方法、快速排序的快速选择方法、如果数据是静态的则计数排序以及最后是具有最坏线性时间情况的数组分区的中值方法.他很高兴,因为我有很多方法可以做到这一点。然后他让我比较这些算法的时间和空间复杂度。
然后他问了一些关于OOPS的问题。
- 如果不引入 OOPS,会发生什么情况?
- 重载和覆盖之间的区别。
- 用现实生活中的例子解释覆盖的用法。
然后他问我是否知道一些 DBMS 知识,因为那时我的课程中还没有。我告诉问,因为我自己研究了一点。他提出的一些问题是——
- 什么是关系数据库管理系统?
- 数据如何存储在非 RDBMS 及其示例中?
- DBMS 中的索引是什么?
- 最后,如果我有任何问题,他给了我一个提问的机会。然后我问:
- 实习生在这两个月里会做什么?
- 会有项目选择的选项吗?
- 他的回答非常真实。
第三轮(50分钟):这一轮从我的爱好和兴趣开始。然后他问了我一些关于 FIFA 和 PUBG 的问题,因为我在简历中提到了这些问题。他收到了我对上一轮的评论,所以他从一些编码问题开始:
1. 反转链表。
我用一个例子解释了我的方法 -
给定 1->2->3->4->5
如果我们已经处理到 3,那么我们将有 3->2->1 和 4->5。
之后,我们可以将右侧链表中的 4 作为左侧链表的头部转移并继续。
他对我的解释很满意,也没有要求写任何伪代码。
2.递归调用main函数打印1-20个自然数。
我给了他两种方法——
将两个命令行参数作为 1 和 20 传递,并使用递增的索引和 20 进一步递归调用主函数。
设置两个全局变量,一个为 1,另一个为 20,并在每次调用 main 时继续递增第一个变量。他告诉我用静态变量考虑另一种方法然后我解释了在主函数中使用静态变量和另一个变量作为全局设置为 20。
然后他要求为 ATM Machines 设计一个基于类的系统。
我给了他一个建设性的方法,比如-让我们首先将其视为一个黑匣子,它以 ATM 卡、密码和金额作为输入,经过一些验证后,如果有效,就会给我们钱。
然后我告诉他以顺序方式发放现金的最简单机制-(ATM号码+密码)->(银行服务器验证密码)->(如果正确则输入金额)->(验证可用 BAL 与 REQ 金额)->(如果好,则发放金钱)。
在每个步骤中,都会有一些附带情况,例如在验证密码时可能存在银行服务器错误或密码错误,那么我们也需要处理它们。
最后,我统计了一些类名和一些我们需要注意的安全事项。他对我的方法印象深刻,并没有要求我进一步写作、上课或编码。
然后他问了我一些关于操作系统的问题:
- 什么是分页和循环?
- 什么是僵局?
- 因为直到那时它才在我的课程中,所以他没有更深入。
- 然后他问了我一些关于网络的问题——
- 表示层的作用是什么?
- 该层使用的协议是什么?
- 什么是 SSL 协议?
因为直到那时它才在我的课程中,所以他没有更深入。
最后,如果我有任何问题,他给了我一个提问的机会。然后我问:
- 给我一些关于我的表现和我的弱点的反馈。
- 我会在销售团队或未来团队工作吗?
HR Round(20 分钟):他让我自我介绍,然后他问我关于 HAR 的数据科学项目:
- 该项目中使用了哪些算法?
- 决策树和神经网络的区别?
- 为什么在分类的情况下,与 NN 相比,决策树的使用不多。
然后他问了我一些真正的问题:
- 为什么选择 Salesforce?
- 如果在给定场景中存在团队冲突,我该怎么办:
- 我认为我的想法比我的团队目前正在讨论的要好,但他们没有给我机会提出我的想法?
- 最后,他问我有没有什么问题。我问他(过去式 :
- 我有机会改变我的项目吗?
- SDE、IT 分析师和业务分析师之间的区别。
幸运的是,我在这3名学生中被选中去实习!
尖端:
- 在 DSA 中表现出色(这可能会给您带来优势)。
- 了解您遇到的概念/技术。
- 实践设计实施。
- 保持冷静并有信心。
- 讨论你在面试中的所有想法。