去年年中,在浏览亚马逊的职位门户时,仔细阅读了职位描述后,决定提交申请。几乎忘记了这件事,直到突然接到招聘人员的电话,询问是否还在寻找工作。积极地回答了招聘人员。他们将资料发送给了招聘经理,并询问了面试的时间安排。收到了面试时间的回复。
花了大约一周的时间准备面试,复习了数据结构/算法的编程技能,还参加了麻省理工学院的开放课程。面试前,感到非常平静,复习的所有主题都在脑海中像梦一样流淌。好了,故事就讲到这里,让看看面试的问题吧。
面试官非常友好,他向解释了他在公司的角色以及公司的价值观。他询问了在团队中的角色和责任,以下是按顺序排列的问题。
告诉职责和团队情况。
告诉和团队面临的挑战以及是如何处理的。
给客户提出了哪些积极的建议,他们的反应如何。接着,他问了关于解决方案的问题。
告诉做出艰难决定的情况及其影响。具体来说,他询问了关于违反截止日期的问题。
是如何处理需求变更的,这对团队有什么影响。
是如何管理团队中的冲突的。
以极大的勤奋回答了这些问题。一直在赞扬团队,这是真的。嘿,不要抱怨管理层。之后,他让打开进行编程。他开始写下问题陈述。以下是问题陈述。创建一个算法来处理软件包安装器的依赖列表。
创建一个名为“graph”的类,它有一个整数列表、字符串列表和一个变量来存储顶点的最大数量。整数列表有字符串列表中的索引,例如字符串“Root Package”的索引是“0”。
一个函数来遍历图并更新它是否在布尔列表中被访问。选择了深度优先算法进行迭代。
在Public指定符中,添加了构造函数、添加边函数、获取列表函数。
在通话中,没有保持沉默,而是一直在告诉他在想什么,只是为了让他参与到对话中来。可能会想为什么是顶点列表,会给一个列表的图形表示。
这个列表有追溯到父级的路径,因为他让检查循环。无论如何,编码进行得很顺利,他说很好。也许对这个问题有更好的想法,但这是在面试环节能想到的。
代码在GitHub页面上。