📜  亚马逊面试经历 | SDE-1 校内(1)

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

亚马逊面试经历 | SDE-1 校内

简介

我是一名本科生,参加了亚马逊SDE-1的校园招聘面试,以下是我面试经历与感悟。

面试环节

一共有三轮面试:

技术面

首先是技术面,时长45分钟左右,主要考察技术能力和对基础算法的掌握。面试官出了三道题:

  1. 两数之和。要求时间复杂度O(n),需要用到哈希表。
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        d = {}
        for i, n in enumerate(nums):
            if target - n in d:
                return [d[target - n], i]
            d[n] = i
  1. 最近公共祖先。二叉树判断结点是否在树中,并输出最近公共祖先。
class Solution:
    def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
        if not root or root == p or root == q:
            return root

        left = self.lowestCommonAncestor(root.left, p, q)
        right = self.lowestCommonAncestor(root.right, p, q)
        if left and right:
            return root
        return left or right
  1. 买卖股票的最佳时机。可以买卖多次,但同一时间只能持有一支股票。问最大收益是多少。
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        res = 0
        for i in range(1, len(prices)):
            if prices[i] > prices[i-1]:
                res += prices[i] - prices[i-1]
        return res
行为面

接下来是行为面,时长30分钟左右,主要考察个人经历和行为表现。面试官会问一些关于你自己的问题,比如你的优缺点、为什么想加入亚马逊等等。需要注意的是,尽量用STAR法回答问题,即Situation(情境)、Task(任务)、Action(行动)和Result(结果)。

战略面

最后是战略面,时长60分钟左右,主要考察对亚马逊业务的理解和解决问题的能力。面试官会出一道问题,要求你提出一个解决方案和实现细节,并考虑到文化适配性和影响面。这个环节需要有创新思维,并且需要有一定的presentation能力。

感悟

面试是一个很好的学习机会,可以发现自己的不足之处。通过多次尝试和总结,可以逐渐提升自己的面试能力。除了刷题,平时需要多多关注软件工程实践,比如代码风格、debug技巧和CI/CD等等。最后,最重要的是保持积极的心态,相信自己一定可以通过面试,进入心仪的公司。