SDE 角色的 Sabre 面试经验 | NIT詹谢普尔
资格标准:CGPA >= 7 且当前没有积压,10 日和 12 日最低 60%。
合格分支机构:CSE、ECE、EEE。
第 1 轮(在线测试):这一轮包括 40 个 MCQ 和两个编码问题。 MCQ部分涵盖了计算机科学的所有主要主题( DBMS 、操作系统、数据结构和算法、计算机网络)以及来自不同主题的一系列能力问题(BODMAS、排列、距离和时间、复利、数据解释、百分比、损失和利润,时间和天数)。很少有 MCQ 包含预测 C 程序的输出。有些问题是+3 -1,而其他问题是+4 -1
编码部分有两个编码问题。第一个问题是50分。第二个问题是100分。
编码问题:
给定一个长度为 n 的整数数组。您需要找到最大的三角形子序列的大小。
注意:如果属于 S 的非常三元组 (s1,s2,s3) 满足三角不等式,则子序列 S 称为三角
例子:
输入:
A[] = {9,19,8,10,13}
输出:
4
解释:子序列 {9,8,10,13} 满足条件
解决方案:有很多方法可以做到这一点。我通过对输入进行排序而不是保持最小大小为 3 的窗口并扩展其大小直到满足不等式并在我们失败时减小它来做到这一点
C++
#include
using namespace std; int main() { int n; cin >> n; int arr[n]; for (int i = 0; i < n; i++) { cin >> arr[i]; } sort(arr, arr + n); int i = 0, j = 0; int len = 0; while (j < n) { if (j - i < 2) { j++; } else { if (arr[i] + arr[i + 1] > arr[j]) { len = max(len, j - i + 1); j++; } else { i++; } } } cout << len << endl; return 0; } 给你 N 个不同价值的硬币,排成一排,给你 Q 个查询,格式如下
- 0 XY — 计算区间 [X, N] 内所有特殊硬币的总和
- 1 XY — 计算区间 [X, N] 内所有特殊硬币的乘积
对于每个查询,第 X 个操作包含一个特殊的硬币。如果硬币的索引与任何其他特殊硬币的索引的距离可以被 Y 整除,则该硬币被认为是特殊硬币。如果硬币在 i=2 处是特殊的,并且 Y =3,那么硬币在 i=5, 8,11 也被认为使用了特殊的基于 1 的索引,例如数组 2 3 5 4 7,查询 ==2
0 1 3 ===> ans 2+4=6 1 2 2 ===> ans 3*4 =12
解决方案:我想不出更好的方法,所以选择了时间复杂度为 O(N*Q) 的蛮力方法,我得到了部分标记。
我做了大约 23 个 MCQ 问题并完成了 1 个半代码并被选中进入下一轮,从大约 180 名出现的学生中选出了 38 名进入下一轮。
提示:速度非常重要,因为 MCQ 问题的数量很高,也因为有负面标记,不要猜测。一些 MCQ 很耗时,最好选择正确的问题,这两个部分同样重要,因为考虑了综合分数。在编码部分我们有部分标记,所以如果你不能找到所需时间复杂度的正确答案,至少尝试蛮力
认真学习操作系统,不要忘记练习 SQL 语法问题,因为它们构成了一些更难的问题的核心,可以通过一些练习来解决,除非你 100% 确定,否则也要避免基于英语的问题。
第二轮(技术面试):这一轮面试官让我解释我在上一轮写的两个编码问题的解决方案。他还要求对我的解决方案进行时间复杂度和空间复杂度分析。他问我是否可以优化我的第二个解决方案。我曾试图提出某种逻辑,但未能做到,但在面试官的一点帮助下,我能够想出一种使用地图存储每一对的总和/乘积的方法给定输入 ex,我们正在计算我们在答案中遇到的地图中每个 X、Y 的答案
注意:对于每个 X=1,2,3,….Y 和 Y=1,…..N
如果我们遇到 4,3,那么我们将存储 1,4,7,... N 的结果。因此,如果要求 X=4 且 Y =3,我们可以计算 (1,3), (4,3), ( 7,3) 依此类推,这将提高运行时间。
同样,我们可以为面试官对此感到满意的产品做。然后他让我在我能够在给定时间内完成的双循环链表的头部和中间进行插入。然后我被问到以下问题
多层建筑有好几层。每层楼都有电梯。大楼内的电梯有一个系统,其规则如下
- 从任何楼层 A,您只能移动到 A/p 楼层,其中 p 是小于给定数 M 的 A 的素因子
- 一次只移动一部电梯,移动到另一层需要1秒
你在 X 楼,你的朋友在 Y 楼,你想见他,可以在任何楼层见面,你们都可以乘电梯,求最少见面时间
给了我 15 分钟,我尝试了一种贪婪的方法,但未能通过所有测试用例,所以面试官继续提出更多问题
- 他问我知道哪些核心科目我告诉了他 OS、DBMS、CN。所以他问了我以下问题
- 内核做什么,它的类型和系统调用是什么?
- 什么是死锁,它的预防技术还要求我写银行家算法的伪代码?
- OSI 和 TCP/IP 模型之间的区别。
- 什么是虚函数?它们是用来做什么的?
然后他给了我一个数据库并让我在上面写查询,我能够做前两个但在最后一个失败,使用聚合函数group by 和编写子查询来解决这个问题。采访结束时我问他有关公司文化等问题。
尖端:
- 彻底学习 DSA 还保持编写快速正确代码的习惯。
- 好好准备你的核心科目。
- 准备好上一轮编码问题的优化解决方案。
- 如果您不知道几个答案或您说出错误的答案,请自信并谦虚地接受您的错误。
在 38 名学生中,有 15 人通过了管理回合。
第三轮(管理层面试):这一轮主要涉及您在简历中写的内容。由于我来自 web 开发领域,我被问到一个问题,例如 put 和 post 请求之间的区别、身份验证和授权之间的区别、JWT v Cookie、SQL v NoSQL DB、Client-Side v Server Side Rendering、
我的项目等中如何维护用户状态?还讨论了如何进一步改进项目以及为什么使用 React 而不是 Angular 等
然后他转身问了一些问题,比如 ISP 是如何工作的,以及当我们在浏览器中搜索 google.com 时会发生什么等。然后我得到了一个益智游戏
https://www.webgamesonline.com/mastermind/
我能够完成它。采访再次以我向他询问有关军刀及其工作的问题结束。
尖端:
- 为有关您的项目的问题做好准备。
- 您应该了解网络的基本日常使用及其工作方式,例如 DNS、ISP 等。
第 4 轮(人力资源面试):这是您讨论自己的最有趣的一轮。每一个问题和答案都是关于你的。所以这不会很难。与HR交谈非常有趣,没有错误或正确的答案,只是不要自相矛盾。您会遇到几种情况并询问您的回答。
- 如果将来您开始自己的创业公司,您将在员工身上看到什么品质
- 如果您是团队的一员,而其中一名成员没有做出贡献,您将如何反应?
- 假设你所做的工作没有得到赞誉,你会如何反应?
- 你的朋友欣赏你的哪些品质,他们不喜欢哪一种?
尖端:
- 准备好向自己介绍这个问题,但不要学习它。
- 是自发的。
- 不要自相矛盾。
一共选择了5个候选人,我就是其中之一,这是一个非常全面的体验,学生将全面的能力有更好的机会被选中!!