【社招】软开一二面-Amazon

📍面试公司:亚马逊

🕐面试时间:8.27

💻面试岗位:SDE(软开)

❓面试问题:

一面

没有自我介绍

1.介绍你最熟悉,你觉得子自己做过最cool的项目吧?

(项目深挖中……)

2.写个题吧

有个满二叉树,在一个表格中:

例如:

-------------------------------------> x

| | | | | | | x | | | | | |

| | | | | | | | | | | | | |

| | | | | | | | | | | | | |

| | | | | | | | | | | | | |

|

y

-------------------------------------> x

| | | | | | | x | | | | | |

| | | | | | x | | x | | | | | |

| | | | | | | | | | | | | |

| | | | | | | | | | | | | |

|

y

其中每个x代表一个结点,所有的左儿子结点只能在父结点的左边,右儿子只能在父结点的右边,

现在有一个n层的满2叉树,请问给一个坐标(x,y),问在不在这个树中(在就返回true,不然就返回false)

面试官先是问了一个数学问题:请问n层满二叉树有多宽

我一开始理解成树的一半就是它的宽度,后来面试官解释了一下就明白了---(这里必须提一句亚马逊的面试官都很有耐心,会耐心地跟你沟通和解释)

我回答上来了,就是2^n-1

然后就是实际编程解决问题了,他问我思路,我说得先找规律,面试官还问我有没有暴力一点的解法,我想了一下说有:先把二人茶树构造出来然后一个一个遍历,他说好你就这么实现以下吧(我感觉他在引导我,其他的方式不一定能在短时间搞定),实际写的时候依然是要找规律,还好写出来了

3.反问环节

二面

1.对面面试官介绍,说已经干了10年了,是开发经理(估计得是+2)

2.介绍一个你印象最深刻的项目吧(how old are u :怎么老是你)

(深挖项目中……)

深挖的过程中,有好几次误解了面试官的问题,导致解释的时候出现了自相矛盾的情况,还好后面好好解释了,但是感觉解释地不够清楚,面试官多次反问我一些问题试图理解我项目中的痛点,我感觉是因为我没有解释清楚或者自己没有彻底搞透导致他会出现问题:例如:为什么自动化case不可以多线程跑---他这里问的是多个case并行跑,我以为他问的是单个case,我还纳闷来着,后面给他说我们是并行跑的时候,他就觉得自相矛盾,然后我才解释给他说之前你问的是单个case并行,我们没有搞,后来多个case并行我们搞了。

3.为什么想要离职?

🙌面试感想:

一面非常紧张,因为在画图找规律的时候一直没画好图导致花的时间有点多;

二面虽然轻松(没有代码考核),但是也是被一连串的反问问的自己脑袋有点不清醒了;

小插曲:今天正好换键盘,但是不敢在面试这种场合用刚到的60%键盘去替换之前用习惯的87键键盘,结果还是出了问题,87键键盘吞输入了,ctrl+C,ctrl+V的结果就是打印出来一个c或者v,当时写代码的时候急死我了。真的是2难选择

总结

1.键盘就是要用没问题的键盘

2.要吃透项目,又获得了一些之前项目中没有察觉的盲点,比如:前端页面的id是可能替换的吗?可以深入了解一下

3.上面说的都是一些不足的地方,这里可以说一些做的好的地方,以后沉淀成习惯:比如一面的时候不懂就问,和面试官多交流,形成一种"你懂我,我也懂你"的氛围,既能解决问题,又可以留下好的印象

#牛友故事会##面试问题记录##牛客创作赏金赛#
全部评论
另外给各位朋友提个醒,amazon的笔试通过后才能进面,笔试是全英文的
点赞 回复 分享
发布于 09-04 13:51 上海
不用id定位的原因:虽然id比较稳,但是由于页面复用的话,可能导致同一个页面出现多个重复id;此外,前端框架对元素的定位方式可能已经升级,不再需要id
点赞 回复 分享
发布于 09-04 13:49 上海

相关推荐

1、给一个字符串str='10+10*5-8',实现加减乘除,输出结果---PDDdef calculate(s):s = s.replace(' ', '')stack = []num = 0op = '+'  # 初始操作符设为 '+'for i, char in enumerate(s):# 判断字符串是否只包含数字字符(0 - 9)if char.isdigit():# 多位数处理num = num * 10 + int(char)# 遇到运算符或到达末尾时,处理前一个操作符if char in '+-*/' or i == len(s) - 1:if op == '+':stack.append(num)elif op == '-':stack.append(-num)elif op == '*':stack.append(stack.pop() * num)elif op == '/':prev = stack.pop()if prev // num < 0 and prev % num != 0:stack.append(prev // num + 1)  # 向零取整else:stack.append(prev // num)op = charnum = 0return sum(stack)str_expr = '10+10*5-8'result = calculate(str_expr)print(result)2、给定一个二维数组(矩阵)要求按照螺旋顺序输出所有元素def spiral_order(matrix):if not matrix or not matrix[0]:return []result = []top, bottom = 0, len(matrix) - 1left, right = 0, len(matrix[0]) - 1while top <= bottom and left <= right:# 1. 从左到右遍历上边界for col in range(left, right + 1):result.append(matrix[top][col])top += 1  # 上边界下移# 2. 从上到下遍历右边界for row in range(top, bottom + 1):result.append(matrix[row][right])right -= 1  # 右边界左移# 3. 从右到左遍历下边界(需检查 top <= bottom)if top <= bottom:for col in range(right, left - 1, -1):result.append(matrix[bottom][col])bottom -= 1  # 下边界上移# 4. 从下到上遍历左边界(需检查 left <= right)if left <= right:for row in range(bottom, top - 1, -1):result.append(matrix[row][left])left += 1  # 左边界右移return result3、给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素(前 K 个高频元素)---阿里4、给你一个非负整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :(目标和)---阿里
点赞 评论 收藏
分享
评论
4
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务