📅  最后修改于: 2023-12-03 15:29:00.307000             🧑  作者: Mango
本篇介绍的是一位程序员在高盛面试中的经历,分享了部分面试题目及所学到的知识点。希望能够给程序员们提供有益的帮助和建议。
通过这次高盛的面试,我发现自己仍然有很多需要学习的地方,尤其是在算法和数据结构方面。我会继续努力提升自己的技能水平,争取在未来的面试中有更好的表现。
例如:给你每个月的天数,问平均每个月有多少天?
解法:将每个月的天数求和,再除以总的月数。
给定一个矩阵,找出其中的最长递增路径。
解法:使用动态规划,先将矩阵中的每个元素初始化为1,在遍历过程中,比较当前元素与相邻元素大小,如果当前元素比相邻元素大,则将相邻元素的值加1,并更新最长路径。
解法:使用哈希表,遍历字符串中的每个字符,将字符作为键存储在哈希表中,并将值初始化为1,如果遍历到重复的字符,则将对应的值加1。
解法一:暴力枚举,遍历数组中的每个元素,对于每个元素,遍历后面的元素,判断其与当前元素的和是否等于目标值,时间复杂度为O(n^2)。
解法二:使用双指针法,将左指针指向数组的第一个元素,将右指针指向数组的最后一个元素。比较左右指针所指元素的和与目标值的大小关系,如果和小于目标值,则将左指针向右移动一位,如果和大于目标值,则将右指针向左移动一位,直到找到满足条件的两个数。
解法一:暴力枚举,将字符串分别从头和尾开始遍历,依次比较对应的字符是否相等,时间复杂度为O(n)。
解法二:使用双指针法,将左指针指向字符串的开头,将右指针指向字符串的结尾,依次比较对应的字符是否相等,时间复杂度为O(n)。
解法:将数组排序,枚举第一个数,使用双指针法找到剩下两个数的组合,时间复杂度为O(n^2)。
通过这次高盛的面试,我发现自己仍然有很多需要学习的地方,特别是在算法和数据结构方面。我会继续努力提升自己的技能水平,争取在未来的面试中有更好的表现。
# 高盛面试经历 | 设置 41
## 简介
本篇介绍的是一位程序员在高盛面试中的经历,分享了部分面试题目及所学到的知识点。希望能够给程序员们提供有益的帮助和建议。
## 总结
通过这次高盛的面试,我发现自己仍然有很多需要学习的地方,尤其是在算法和数据结构方面。我会继续努力提升自己的技能水平,争取在未来的面试中有更好的表现。
## 面试题目
### 第一轮
1. 马克思平均天数问题
例如:给你每个月的天数,问平均每个月有多少天?
解法:将每个月的天数求和,再除以总的月数。
2. 矩阵中的最长递增路径
给定一个矩阵,找出其中的最长递增路径。
解法:使用动态规划,先将矩阵中的每个元素初始化为1,在遍历过程中,比较当前元素与相邻元素大小,如果当前元素比相邻元素大,则将相邻元素的值加1,并更新最长路径。
### 第二轮
1. 编写一个方法,查找给定字符串中的所有重复的字符并返回
解法:使用哈希表,遍历字符串中的每个字符,将字符作为键存储在哈希表中,并将值初始化为1,如果遍历到重复的字符,则将对应的值加1。
2. 给定一个有序数组和一个目标值,在数组中查找两个数的和等于目标值
解法一:暴力枚举,遍历数组中的每个元素,对于每个元素,遍历后面的元素,判断其与当前元素的和是否等于目标值,时间复杂度为O(n^2)。
解法二:使用双指针法,将左指针指向数组的第一个元素,将右指针指向数组的最后一个元素。比较左右指针所指元素的和与目标值的大小关系,如果和小于目标值,则将左指针向右移动一位,如果和大于目标值,则将右指针向左移动一位,直到找到满足条件的两个数。
### 第三轮
1. 给定一个字符串,编写一个方法,判断该字符串是否为回文串
解法一:暴力枚举,将字符串分别从头和尾开始遍历,依次比较对应的字符是否相等,时间复杂度为O(n)。
解法二:使用双指针法,将左指针指向字符串的开头,将右指针指向字符串的结尾,依次比较对应的字符是否相等,时间复杂度为O(n)。
2. 给定一个数组和一个目标值,编写一个方法,找出数组中所有三个数的组合,使其和等于目标值
解法:将数组排序,枚举第一个数,使用双指针法找到剩下两个数的组合,时间复杂度为O(n^2)。
## 总结
通过这次高盛的面试,我发现自己仍然有很多需要学习的地方,特别是在算法和数据结构方面。我会继续努力提升自己的技能水平,争取在未来的面试中有更好的表现。