📅  最后修改于: 2023-12-03 15:13:06.696000             🧑  作者: Mango
该面试是我参加的亚马逊校园招聘的一部分,具体岗位是云助理1。面试是在线的,通过电话和电脑屏幕分享解决方案进行。整个面试过程持续了大约1小时。
面试官先向我介绍了自己,然后要求我介绍自己的学术和工作经历。此时,我简要地介绍了我的背景信息和在计算机科学领域的研究方向和实习经验。
接下来,面试官问我有多少解决方案能够使用 AWS Lambda 实现,每个方案占用多少内存和 CPU 时间。我讲了三个场景:
然后我讲了如何预估内存和时间占用量。
接下来面试官问我以下几个问题:
接下来,他要求我写一个函数,根据输入数组的长度和目标值,返回一个 4 元组的索引,该 4 元组的总和等于目标值。我的思路是基于两个指针的“一前一后”的方法,它们扫描输入数组。我实现了这个函数,并测试了一些输入参数。
def fourSum(nums, target):
# Sort list
nums.sort()
# Define 4 sum numbers as a and b, starting from 2 pointers from start and end of the sorted list
res = []
for i in range(len(nums)-3):
if i > 0 and nums[i] == nums[i-1]:
continue
for j in range(i+1, len(nums)-2):
if j > i+1 and nums[j] == nums[j-1]:
continue
left, right = j+1, len(nums)-1
while left < right:
total = nums[i] + nums[j] + nums[left] + nums[right]
if total == target:
res.append([nums[i], nums[j], nums[left], nums[right]])
while left < right and nums[left] == nums[left+1]: left += 1
while left < right and nums[right] == nums[right-1]: right -= 1
left += 1
right -= 1
elif total < target:
left += 1
else:
right -= 1
return res
虽然这是我的第一次亚马逊在线面试,但我感到面试官非常友好和专业。他试图了解我的程序设计和算法能力,并考查我的经验和知识。整个过程非常刺激,让我意识到亚马逊是一家非常有雄心壮志的公司,它正在通过现代的云计算技术重塑未来的商业模式。