📅  最后修改于: 2023-12-03 15:21:43.687000             🧑  作者: Mango
该面试是在亚马逊校园招聘活动中进行的,职位为 SDE-I,面试评级为 Level 5。面试官是一名 Senior SDE。
我的面试流程如下:
这一轮面试时长 70 分钟,主要考察的是编程能力和细节注意力。
def dfs(s, path, word_dict, res):
if not s:
res.append(path[:])
return
for i in range(1, len(s) + 1):
prefix = s[:i]
if prefix not in word_dict:
continue
dfs(s[i:], path + [prefix], word_dict, res)
def word_break(s, word_dict):
dp = [[] for _ in range(len(s) + 1)]
dp[0] = [[]]
for i in range(1, len(s) + 1):
for j in range(i):
if dp[j] and s[j:i] in word_dict:
for path in dp[j]:
dp[i].append(path + [s[j:i]])
res = []
dfs(s, [], word_dict, res)
assert res == dp[-1]
return res
这一轮面试时长 60 分钟,主要考察的是数据结构和算法。
def dfs(u, graph, visited, path):
visited[u] = 1
path.append(u)
for v in graph[u]:
if not visited[v]:
if dfs(v, graph, visited, path):
return True
elif visited[v] == 1:
path.append(v)
return True
visited[u] = 2
path.pop()
return False
def find_cycle(graph):
visited = [0] * len(graph)
path = []
for u in range(len(graph)):
if not visited[u]:
if dfs(u, graph, visited, path):
return path[path.index(path[-1]):]
return None
这一轮面试时长 45 分钟,主要考察的是项目经验和软技能。
这次面试整体来说比较顺利,我的编程能力和项目经验得到了认可。但是在技术面试中,我发现自己在算法上还有一些欠缺,需要加强。此外,我的沟通能力还有待提高,需要更多的练习。总之,我会继续努力,争取成为一名优秀的工程师。