📜  高盛面试经历(1)

📅  最后修改于: 2023-12-03 15:12:56.292000             🧑  作者: Mango

高盛面试经历

背景介绍

高盛(Goldman Sachs)是一家全球性的投资银行和证券交易公司,总部位于纽约市。作为业界的佼佼者,高盛在各个领域拥有众多优秀的程序员团队。

面试准备

在准备高盛面试过程中,可以着重准备以下几个方面:

  1. 熟悉算法和数据结构,能够熟练使用各种数据结构进行编程;
  2. 对于金融行业的相关知识,要有一定的了解;
  3. 了解高盛的业务范围和发展历史;
  4. 准备面试常见的问题,例如计算机网络、操作系统、数据库等。
面试流程

高盛的面试流程比较严格,大致分为以下流程:

  1. 简历筛选;
  2. 一轮电话面试;
  3. 两轮技术面试;
  4. 一轮行为面试。

在面试中,除了所准备的知识外,HSBC更注重考察应聘者的综合素质和沟通能力。因此,在面试中要注意以下几点:

  1. 注意礼仪和合理安排时间;
  2. 了解HSBC的价值观和企业文化,遵守相关规定;
  3. 根据面试官的问题积极回答,多提示自己的思路。
面试经历

我曾参加过HSBC的一次技术面试。面试时,面试官会按照不同的领域来提问,主要集中在算法与数据结构方面。下面是我回答的一道典型问题:

问题:

给定一个未排序的整数数组,找到其中包含的最长连续元素序列的长度。

例如,

输入:[100, 4, 200, 1, 3, 2] 输出:4 解释:最长的连续元素序列是 [1, 2, 3, 4]。其长度为 4。

要求算法的时间复杂度为O(n)。

思路:

可以考虑使用哈希表来解决这个问题。首先将所有元素放入哈希表中,然后遍历数组中的每个元素,尝试向左或向右拓展连续元素序列。具体方法如下:

  1. 判断当前元素是否存在于哈希表中;
  2. 如果存在,则继续遍历下一个元素;
  3. 如果不存在,则从当前元素开始向左或向右遍历,同时将遍历到的元素从哈希表中移除;
  4. 记录遍历到的连续元素个数,并与当前最大连续元素个数比较,更新最大值。

最终的时间复杂度为O(n),空间复杂度也为O(n)。

代码片段:
def longestConsecutive(nums: List[int]) -> int:
    # 将所有元素放入哈希表中
    nums_set = set(nums)
    max_len = 0

    # 遍历数组中的每个元素
    for num in nums_set:
        if num - 1 not in nums_set:
            # 从当前元素开始向右遍历
            cur_num = num
            cur_len = 1

            while cur_num + 1 in nums_set:
                cur_num += 1
                cur_len += 1

            # 更新最大连续元素个数
            max_len = max(max_len, cur_len)

    return max_len
总结

高盛作为一家顶尖的投资银行公司,对于程序员的要求非常高。在准备面试的过程中,应注意提高自己的综合素质和沟通能力,熟练掌握算法和数据结构方面的知识,并对金融行业有一定的了解。同时,在面试过程中,一定要注意礼仪和与面试官的积极沟通,展示出自己良好的职业素养和团队合作能力。