📅  最后修改于: 2023-12-03 14:38:50.009000             🧑  作者: Mango
高盛是全球知名的投资银行和证券公司,也是世界上最大的多国籍银行之一。以下是我在2019年参加高盛面试的经历。
在参加面试之前,我先进行了一些准备工作,包括复习算法和数据结构的知识、阅读高盛公司的介绍和业务领域、了解高盛招聘流程等。
同时,还建立了自己的个人网站和Github账号,展示自己的项目和作品,以便在面试中进行展示。
第一轮面试是电话面试,前半部分是闲聊,介绍自己的背景和兴趣爱好等。后半部分则是算法题和编程语言的问题。
题目:给定一个整数数组 nums,请编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例 1: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]
思路:使用两个指针分别指向开头和元素非零的序号。循环交换两个指针的元素,直到指向数组的结尾。
代码:
void moveZeroes(vector<int>& nums) {
int j = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] != 0) {
swap(nums[i], nums[j]);
j++;
}
}
}
第二轮面试是视频面试,共有两轮。第一轮是与高盛团队的技术主管和HR的面试,第二轮则是与高盛团队的技术主管和其他技术团队成员的面试。
在第一轮面试中,我被问到了一些关于项目经验、工作流程、技术挑战等方面的问题。同时,我也向面试官介绍了自己的代码仓库和个人网站。
在第二轮面试中,我被问到了更加具体和深入的技术问题,包括以下内容:
通过这次面试经历,我了解了高盛公司的业务和文化,也学到了很多新的知识和技能。同时,我也发现自己在某些方面还需要更进一步的提升和学习。
因此,我在面试之后,不仅加强了对算法、数据结构和编程语言的学习,还参加了更多的开发比赛和技术研讨会,以获得更多的实践经验和理论知识。