📅  最后修改于: 2023-12-03 15:42:33.046000             🧑  作者: Mango
这是我在 IIT Guwahati 参加高盛的面试经历。在这次面试中,我面对大约 4 个面试官,分别进行了 3 轮技术面试和一轮 HR 面试。整个过程中,我接触到了许多关于数据结构、算法和系统设计的问题,并且在各种方面得到了相当多的锻炼。
在技术面试中,我遇到了许多基本且常见的问题,如数组和字符串操作,树和图,排序和查找等。总的来说,我的实践经验帮助我解决了大部分问题,但我也深刻认识到了我需要更深入和广泛的知识。
在数组和字符串操作方面,我遇到了一些基本问题,如如何求解两个字符串的最长公共子序列,如何旋转一个数组以及如何找到一个未排序数组中的中位数。这一部分的难度不算太大,但在时间短缺的情况下,需要稳定和快速地解决这些问题。
在树和图方面,我遇到了一些较为复杂的问题,例如如何在二叉搜索树中查找第 k 大的元素,如何在多叉树上进行广度优先搜索和深度优先搜索,并且如何在有向图中找到两个节点之间的最短路径。这一部分的难度较大,需要细致的分析和完整的测试。
在排序和查找方面,我遇到了一些比较高级的问题,例如如何用归并排序来求解逆序对,如何用快速排序来确定样本中的 k 个最大元素,并且如何使用一些的排序算法来对大规模数据进行处理。这一部分的难度很高,需要非常高效的算法和技术。
在面试的最后一轮,我面对的是一个比较广泛的系统设计问题,涉及到数据架构、容错性和可扩展性等。在这个问题中,我需要为一个金融银行设计一个账户管理系统,可以同时操作数百万条记录,并能应对可能发生的所有故障和可用性问题。这一部分的难度极高,需要在短时间内快速思考和综合能力。
在 HR 面试中,我遇到了一些问题,如我的职业生涯规划和我作为团队成员的一些优势。这一部分的难度不高,但需要自信和冷静地回答这些问题。
这次高盛的面试经历对我有很大的启示,提高了我对数据结构、算法和系统设计的理解。通过与面试官的交流,我更好地认识到了自己的不足,以及在将来需要进一步提高的方向。