我最近参加了针对SDE-I职位的Salesforce Hyderabad的采访。总共有5轮, 都是技术性的。
一, 编程回合:
1.找到一棵二叉树的直径这里的直径是该树中由两个叶节点组成的最大节点数。
它可以通过根, 也可以不通过。
2.将一个m×m矩阵旋转90度。
i/p: {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}
o/p: {{1, 5, 9, 13}, {2, 6, 10, 14}, {3, 7, 11, 15}, {4, 8, 12, 16}}
3.给定一个包含正数和负数的数组, 在其中找到所有子数组, 它们的总和等于零。
解决方案:维护哈希图, 直到现在为止为每个元素及其索引位置插入总和– – HashMap
对于每个元素, 请检查以下3种情况:
a)元素是否为"零" ==>起始索引和终止索引均为"当前索引"
b)总和是否为"零" ==>起始索引为0, 终止索引为"当前索引"
c)总和是否已经存在==>起始索引为" map.get(sum)+1", 终止索引为"当前索引"
二。技术回合1:
1.给定以小时和分钟为单位的时间, 请在模拟时钟中找到小时和分钟指针之间的角度。
2.给定两个大小相等的数组。第一个数组代表火车的到达时刻, 第二个数组代表同一火车的出发时刻。
现在, 使用上述两个数组数据, 给出容纳火车所需的平台数量。
3.给定一个包含整数的数组, 其中的元素重复多次。
现在用数字的频率对数组排序。
eg: i/p: 2, 4, 5, 2, 1, 9, 3, 2, 2, 5, 1, 5
o/p: 2, 2, 2, 2, 5, 5, 5, 1, 1, 4, 3, 9
4.为多线程中的死锁编写代码。
三, 技术回合2:
给定一个包含域名及其产品的网址, 例如:www.amazon.in/pid=1234
通过将此url传递给实用程序功能, 你可以获得有关它的所有信息。
getProductName(url)–>为你提供产品名称
getProductPrice(url)–>给你产品的价格
getRelatedProducts(url)–>与当前产品相关的其他产品, 用户可能也会对此感兴趣。
现在给定了产品网址, 请完整打印有关其的信息, 包括其所有相关产品。
你将考虑代表上述产品数据并为其编写类结构的数据结构是什么。
IV。演讲回合:
将提供一个技术主题, 你必须在5至6人的小组面前发言。你将有1个小时的时间来准备一个具有互联网功能的系统。
你可以在船上或通过ppt演示主题。
这一轮的目的是检查候选人在一个新主题上的学习能力, 即他的表达能力。
给我的主题是" Apache Flink"
由于我对此轮反应不一, 因此他们进行了另一轮技术交流。
V.技术回合3:
1.设计一个LRU(最近最少使用)缓存。
什么是缓存并定义LRU缓存?
你使用什么数据结构, 时间复杂度是多少?
解决方案:获取一个哈希表和链接列表
HashMap在链接列表中包含键作为数据和值作为其地址
链接列表将按其使用顺序维护元素, 最后使用的项目位于列表的开头。
这样, 最近最少使用的方法始终位于列表的末尾。
2.解释HashMap的内部实现并为其编写代码。
如果你喜欢lsbin并希望做出贡献, 那么你也可以写一篇文章并将你的文章邮寄到contribution@lsbin.org。查看你的文章出现在lsbin主页上, 并帮助其他Geeks。
Salesforce的所有实践问题
!