📅  最后修改于: 2023-12-03 15:06:23.041000             🧑  作者: Mango
本人在软件开发行业有 2.5 年的经验,熟悉主流的后端语言和云环境。在此次面试中,应聘的是一份在亚马逊工作的软件开发工程师职位。
本次面试共分为 4 轮,每轮都是技术面试
在第一轮面试中,面试官主要询问了我的项目经验,并深入了解了项目中用到的技术栈和算法。同时还提问了一些关于系统优化的问题,例如如何减少数据库连接数,如何提高系统的性能等等。
第二轮是一个编程测试,面试官给我提供了一个简单的算法题目,要求我用一种编程语言来实现它。在面试期间,我和面试官合作,通过代码的修改和调整来得到最优解。
"""
题目:找出数组中最小的 k 个数
解法:快速排序
"""
class Solution:
def getLeastNumbers(self, nums: List[int], k: int) -> List[int]:
if k == 0:
return []
if len(nums) < k:
return nums
def partition(arr, low, high):
i = low - 1
pivot = arr[high]
for j in range(low, high):
if arr[j] <= pivot:
i += 1
arr[i], arr[j] = arr[j], arr[i]
arr[i+1], arr[high] = arr[high], arr[i+1]
return i+1
def quick_sort(arr, low, high, k):
if low <= high:
index = partition(arr, low, high)
if index == k:
return
elif index > k:
quick_sort(arr, low, index-1, k)
elif index < k:
quick_sort(arr, index+1, high, k)
quick_sort(nums, 0, len(nums) - 1, k-1)
return nums[:k]
在第三轮面试中,面试官对我进行了技术深入的测试。他提出了一些技术问题,要求我详细介绍它们的实现原理,并回答一些该技术的潜在问题和优化方法。
最后一轮面试由一位高级工程师主持。面试官从公司角度出发,问了我一些关于团队合作、公司文化等问题。同时,他还询问了我对未来发展的规划和期望。
整个面试过程非常严谨,但面试官们都很友善和耐心,强调了公司团队合作和文化的重要性。面试后,我对亚马逊的开发团队更加确定,他们注重创新和技术的快速发展,对工程师的设施和工作环境等考虑认真。