在 BITS Pilani 申请的截止日期 – CS 为 7,EEE 为 8,ENI
在线回合
50分钟2题。问题是温和的,但时间限制增加了难度。
问题 1. 给定 N 个大于或等于 0 的数字数组,对应于每个位置的棋子数,找到分配这些棋子的最小移动次数,使得每个位置最后都有一个棋子。
给定数组的总和等于 N。
移动包括将任意数量的石头从一个索引移动到相邻的索引。
例子:-
输入 – [0 2 1 3 0 0]
预期产出 – 3
说明 – 步骤 1:将 1 块石头从索引 1 移到索引 0 [1 1 1 3 0 0]
步骤 2:将 2 个石头从索引 3 移到索引 4 [1 1 1 1 2 0]
第 3 步:将 1 块石头从索引 4 移到索引 5 [1 1 1 1 1 1]
问题 2. 一个用 DFS 解决的措辞复杂的问题。
在出现的 197 人中,有 22 人入围。
技术第一轮
面试官很冷淡,我们首先讨论了我在夏天完成的项目。
一开始他还和我讨论了一些关于公司的事情。
之后,我被要求在 google chrome 中实现历史功能,该功能应支持以下操作:-
1.添加
2. 删除指定 url 的特定实例。例如。您可能有 100 次访问 google.com,但您可能想要删除它的一个实例。
3. 以相反的顺序打印历史记录,即像您在 chrome 中期望的那样首先访问最近访问的 url。
4. 查找(如果您正在搜索“apple”,那么您应该同时获得 apple.com 和 facebook.com/apple 作为结果,如果两者都在历史记录中。)
我使用双向链表和地图实现了这一点。他对我的回答很满意,我们继续讨论 DBS 的问题。
我应该为类似于 facebook 群组的东西制定一个适当的架构,该架构将支持帖子评论、喜欢并且只有群组成员才能访问帖子。完成架构后,他让我对其进行规范化。我一一经历了 1 NF 到 BCNF,结果证明,模式已经满足了 4 模式的所有要求。我打算继续学习 4NF 和 5NF,但他在那里阻止了我,并告诉我通常在现实世界中的问题中,我们会在 BCNF 上停下来。
然后他给了我一个数据库的场景,并让我为它编写 SQL 查询。答案涉及 4 个连接和聚合函数(count) 的使用。
接下来是将 N 个磁铁以 d 的规则间隔放置在一条线上的问题。鉴于磁力与距离成反比,我应该找到力抵消的所有点。
我的第一直觉是中间只有一点,但面试官要求我回顾我的思考过程。然后我使用二进制搜索实现了我的解决方案,并被要求计算相同的时间复杂度。
还有一些我不记得的其他问题。
最后,他问我是否有任何问题要问他,然后讨论了我的职业抱负。
技术第 2 轮
这一轮有点累,2个面试官一个一个地向我提问。
我记得的一些问题:-
1. 股票销售问题,所有 3 个变体一个接一个 – 允许 1 个交易,任何一个都不允许。允许的交易数量,允许的交易数量。
2. 找出一个字符串中至少包含一次字符的子串的个数。
3.free在C中有什么用?解释确切的功能。
4. C++中的static关键字是什么?它存在于C中吗?
5. 编译时多态与运行时多态。
6. 找出给定数组从索引 l 到 r 的最大元素。 (不是蛮力,优化一下)
人力资源回合
我是第一个参加 HR 回合的人,不知道会发生什么。他问我从在线轮到最后一轮的经历。然后他开始讨论这家公司及其工作,并问我关于我梦想中的公司的事情。天气很冷,几乎持续了 10 分钟。
结果——我们所有 3 名被要求担任 HR 的人都被选中了。
准备来源——DSA 的Interviewbit 和Geeksforgeeks、OOP 的Javatpoint 和讲座幻灯片、DBS 的讲座幻灯片和GeeksforGeeks