📜  高盛面试经历

📅  最后修改于: 2021-09-23 05:41:51             🧑  作者: Mango

********** 高盛技术面试(经验丰富)**********
(2018 年 12 月 – 2019 年 1 月)
—————————————————————————————

————————————————————
**** HackerRank 测试 – 90 分钟 – 2 个问题 ****
————————————————————
1) 计数。添加到给定总和的子数组
例子:-
输入:arr[] = {10, 2, -2, -20, 10},
k = -10
输出:3
子数组:arr[0…3]、arr[1…4]、arr[3..4] 的总和正好等于 -10。

输入:arr[] = {9, 4, 20, 3, 10, 5},
k = 33
输出:2
子数组:arr[0…2], arr[2…4] 的总和正好等于 33。

2) 旅行者访问多个城市。他可以每天工作,赚一些钱。他也每天花一些钱。给出了一个数组,描述了他在旅途中的每日储蓄(收入 – 支出)。为了在每天结束时至少有一些储蓄(> 0),他应该从多少钱开始。
例子:-
输入:arr[] = { 10, -5, 7, -8, 5, -9 }
假设他以 x 开头。
在……的最后:-
第 1 天,他节省了 (x + 10)
第 2 天,他节省了 (x + 5)
第 3 天,他节省了 (x + 12)
第 4 天,他节省了 (x + 4)
第 5 天,他节省了 (x + 9)
第 6 天,他节省了 (x + 0)
因此,满足给定条件的 x 的最小值是 1(一)。

————————————————————
**** 代码板第 1 轮 ****
————————————————————
1)
编写一个接受输入和输出的函数,如下所示:-
输入(字符串)输出(字符串)
——————
aaaa3
aabbcc a2b2c2
aaabcdd a3b1c1d2
aa1

2)
a) 你是一位住在南加州的狂热的摇滚收藏家。一些稀有且令人向往的岩石刚刚在纽约上市,因此您正计划进行一次越野公路旅行。沿途还有其他几种稀有岩石可以捡到。你得到了一个填满数字的网格,代表全国各个城市的稀有岩石数量。您的目标是找到从 So_Cal 到 New_York 的最佳路径,以便您沿途积累最多的岩石。

注意:您只能向北(向上)或向东(向右)行驶。
b) 考虑在 doTestsPass() 中添加一些额外的测试。
c) 正确实现optimalPath()。
d) 这是一个例子:
^
{{0, 0, 0, 0, 5}, New_York (finish) N
{0, 1, 1, 1, 0},
So_Cal (开始) {2, 0, 0, 0, 0}} S
v
此示例的总数为 10(2+0+1+1+1+0+5)。

————————————————————
**** 代码板第 2 轮 ****
————————————————————
1)
给定一个字符串。编写一个函数来查找其中的第一个非重复字符。如果没有非重复字符,则返回0;
例如
输入(字符串)输出(字符)
——————
aabbccd d
abbccdee a
0

2)
实现一个函数,该函数将两个无符号整数作为参数,即分子和分母,并以十进制形式输出表示分数的字符串。如果有以十进制形式出现的重复和非终止数字,请将其写在括号中。
例如
输入 (UINT n, UINT d) 输出 (字符串)
——————
2, 5 0.4
1, 2 0.5
1, 3 0.(3)
12、5 2.4
11, 20 0.55
5, 3 1.(6)

————————————————————
**** 在超级日亲自回合 ****
————————————————————

—————————
第1轮
—————————
1. 给定一个数字,以最佳方式找到其立方根的下限值。数量可能相当大。
2. 给定一个从 1 到 N 的整数数组,其中缺少 1 个数字。找到那个号码。在同一个数组中,除了一个缺失的数字,还有一个重复的数字。发现。
3. 对 0 和 1 的数组进行排序。不要进行正常的 N log N 排序。使用数组只有 0 和 1 的事实。
包含 0s、1s 和 2s 的数组的相同问题。

—————————
第二轮
—————————
快速介绍一下你的工作经历。
你为什么想从你现在的公司改变?
1. 给定一个由 0 和 1 组成的矩阵 (M × N),所有行都已排序。以最有效的方式逐列查找第一个。

2. 给定一条无限数线(从 -INF 到 +INF)
一个人从零开始,最初的步长为 1。每一步后,步长增加 1。例如,从 0 到 1 或 -1,步长为 1。从 1 到-1 或 3,因为步长现在变为 2,依此类推。
找到最小数量达到给定数字 N 的步数。

3. 二进制数据流。实现一个数据结构来保存最近添加的最多 100 个这些数据。如果数据结构已满,则删除旧数据。在任何时候,用户都应该能够得到 1 的数量。

4、实现LRU缓存。

—————————
第三轮
—————————
快速介绍一下你的工作经历。
你为什么想从你现在的公司改变?
1. 解释单例模式。您将如何避免并发问题?
2. 有两个进程在两个不同的主机上运行。描述一种机制,通过该机制,它们可以相互交互和共享数据,而无需相互依赖。
3. 考虑一个只有 1 个站台的车站。描述一种为进站列车分配站台的机制。由于多种原因,列车离开站台可能会出现无法预料的延误。
4.实现和解释阻塞队列(伪代码)

—————————
第 4 轮
—————————
关于当前项目和工作方式的几个问题。你如何衡量质量?您在软件开发生命周期中遵循哪些实践?很多为什么以这种方式而不是那种方式键入与当前项目相关的问题。

—————————
第 5 轮
—————————
快速浏览您的简历,并告诉我们有关您当前项目的一些信息。
你为什么想从你现在的公司改变(或改变你的工作领域?)

1. 有一种语言包含来自英语字母表的 a, b, c, d….n 但顺序可以不同。
给定该语言的字典,其中包含按排序顺序的单词。你将如何找出这种语言中的字母顺序?

2. 实现一个堆栈数据结构,它提供一个函数GetMin(),该函数总是以 O(1) 的形式返回堆栈中存在的最小元素。 (把代码写在纸上)

3. 给定一组不同时间间隔的股票价格。买卖股票以最大化利润。
a) 可以买卖一次
b) 可以多次买卖

—————————
第 6 轮
—————————
1. 实现一个数据结构,可以存储传入的整数流,并且可以在 O(1) 中的任何时间返回迄今为止的最小元素。

2. 给定要采取的总步骤数和可能的较小步骤的列表。使用较小的步长进行给定总步数的方法数。 (这类似于可以通过动态规划解决的硬币找零问题)
例如 N = 4 和更小的步骤 = {1, 2, 3}
那么使用 {1, 2, 3} 采取 4 步的方法数是 7
[ (1, 1, 1, 1), (1, 1, 2), (1, 2, 1), (2, 1, 1), (1, 3), (3, 1), (2, 2)]

—————————
第 7 轮
—————————
与团队经理讨论。关于工作角色或一般高盛的问答。

你对高盛了解多少?
为什么要加入高盛?

—————————
—————————
Bluejeans 回合(视频会议)– 1
(与伦敦和纽约的团队合作)
—————————
如何检测链表中的循环?
有关处理并发问题、互斥锁使用和相关问题的问题。
关于你目前工作的问题。

—————————
Bluejeans 回合(视频会议)– 2
(与纽约的另一支团队合作)
—————————
给定一个整数数组和一个数字“sum”,找出数组中总和等于“sum”的整数对的数量。
一些行为问题,例如“对您来说理想的工作/公司是什么?”

—————————
与招聘经理的最后讨论。这更像是一次讨论而不是采访。
询问了一些关于函数式编程经验的技术问题。

整个过程耗时2个月以上。在查房过程中,HR 从来没有跟我说过报酬。在完成上述所有流程后,他们对我说“是”,人力资源部要求我提供当前的工资详细信息/工资单以做出最终报价。但最终,他们得出的数字几乎无法满足我目前的薪酬,忘记了人们期望从新工作中获得的加薪。经我询问,HR 告诉我,strats 个人资料的薪水是不同的。这与团队经理在第 7 轮提到的策略和技术团队的薪水相似,当我问他在策略角色与技术角色中的日常职责之间的差异时,这与团队经理相反。最终,由于补偿,我决定放弃他们的提议。这是令人失望的,因为 GS 在市场上有良好的薪酬形象。更糟糕的是,他们从来没有在流程开始时询问任何工资细节,只有在这个庞大的面试过程之后。