AMAZON onsite 3月面经# JobHunting - 待字闺中
b*t
1 楼
第一轮:
印度小哥,先讲project。
实现一个二叉树的类,包含parent节点。
给一个二叉树的任意节点,返回inorder遍历的下一个节点。
刚开始写了返回右子树最左边的节点,后来经提醒补充了没有子树要从parent里找的情
况。中间穿插问了一些java和数据结构的小问题,不难。
第二轮:
白人,kindle组搞测试的,先是自我介绍。
然后写题:给一个string,返回出现频率最高的字符。
先给他讨论思路,问他这些char在不在ASCII范围内,他说good question,不一定。
然后用hashmap写了出来,中间让我解释了一下hash得概念,还有一些小问题记不清了
都不难。
中间遍历hashmap的时候卡了一下,忘了那个KV pair怎么写了,经提醒写出来了,后来
又发现不用遍历hashmap,直接遍历string就可以,然后改正。
最后问了一些测试的问题, 比如刚才是我写的如果输入String为空,就返回null,但
是我的方法返回类型是char,不能用null,后来告诉我可以返回‘\0’(这个我之前还
真不知道。。。)
后来又问我改如何测试,给了几个test case。
总体感觉这轮聊得还不错,后来问了他一些问题,以为下一个面试官还没来,就多跟他
聊了一会,耐心的给我讲了好多amazon的工作环境,文化什么的。
第三轮:
看着有点像墨西哥裔,一进来就连连打哈欠,感觉就像中午喝了酒,没有午休好一样。
然后简单自我介绍一下开始算法
1, 给一个string, 返回所有出现次数为奇数的char.告诉他用hashmap统计出现频率
,后来让优化,就想到可以用hashset先插入再删除,如初反复可以得到所有奇数频率
的char,这题没写代码。
2. 给两个string,代表两个数字,比如s1 = “123”, s2 = “322”, 返回s3 = “
445”,还是先讨论思路,开始说用Integer.parseInt(),然后问我什么情况下我这个方
法不行,我说string很长或者输入不合法。中间又说了用long,bigInteger,最后说用
数组实现他才满意。然后写代码,代码写的比较长,为了方便相加,数组里的数字是倒
序储存的。后来写到相加完毕,还差把相加后的数组再倒序回来转换成string的时候时
间到了。我给他说用stringbuilder倒序遍历一下就可以了。
第四轮:
白人,带了一个学徒一起。
问的是检查一个二叉树树是否是对称树,leetcode原题,之前做过,可惜当时忘了。开
始用bfs写,写到一半自己突然发现有test case满足不了,卡了一下,后来经提醒写出
了递归的解法,代码写的比较长,写完也没多久时间了,就让我问问题了。
回去看之前leetcode上写的解法,就六七行,瞬间就沮丧了。
总体感觉还行,因为问的题基本都写出来了,聊天感觉也还好。不过4天后接到电话
reject。
想想应该还是自己基础不扎实,这次题都比较简单,面试官可能觉得应该在更短的时间
内完成的。
哎,继续努力吧,求内推啊!
印度小哥,先讲project。
实现一个二叉树的类,包含parent节点。
给一个二叉树的任意节点,返回inorder遍历的下一个节点。
刚开始写了返回右子树最左边的节点,后来经提醒补充了没有子树要从parent里找的情
况。中间穿插问了一些java和数据结构的小问题,不难。
第二轮:
白人,kindle组搞测试的,先是自我介绍。
然后写题:给一个string,返回出现频率最高的字符。
先给他讨论思路,问他这些char在不在ASCII范围内,他说good question,不一定。
然后用hashmap写了出来,中间让我解释了一下hash得概念,还有一些小问题记不清了
都不难。
中间遍历hashmap的时候卡了一下,忘了那个KV pair怎么写了,经提醒写出来了,后来
又发现不用遍历hashmap,直接遍历string就可以,然后改正。
最后问了一些测试的问题, 比如刚才是我写的如果输入String为空,就返回null,但
是我的方法返回类型是char,不能用null,后来告诉我可以返回‘\0’(这个我之前还
真不知道。。。)
后来又问我改如何测试,给了几个test case。
总体感觉这轮聊得还不错,后来问了他一些问题,以为下一个面试官还没来,就多跟他
聊了一会,耐心的给我讲了好多amazon的工作环境,文化什么的。
第三轮:
看着有点像墨西哥裔,一进来就连连打哈欠,感觉就像中午喝了酒,没有午休好一样。
然后简单自我介绍一下开始算法
1, 给一个string, 返回所有出现次数为奇数的char.告诉他用hashmap统计出现频率
,后来让优化,就想到可以用hashset先插入再删除,如初反复可以得到所有奇数频率
的char,这题没写代码。
2. 给两个string,代表两个数字,比如s1 = “123”, s2 = “322”, 返回s3 = “
445”,还是先讨论思路,开始说用Integer.parseInt(),然后问我什么情况下我这个方
法不行,我说string很长或者输入不合法。中间又说了用long,bigInteger,最后说用
数组实现他才满意。然后写代码,代码写的比较长,为了方便相加,数组里的数字是倒
序储存的。后来写到相加完毕,还差把相加后的数组再倒序回来转换成string的时候时
间到了。我给他说用stringbuilder倒序遍历一下就可以了。
第四轮:
白人,带了一个学徒一起。
问的是检查一个二叉树树是否是对称树,leetcode原题,之前做过,可惜当时忘了。开
始用bfs写,写到一半自己突然发现有test case满足不了,卡了一下,后来经提醒写出
了递归的解法,代码写的比较长,写完也没多久时间了,就让我问问题了。
回去看之前leetcode上写的解法,就六七行,瞬间就沮丧了。
总体感觉还行,因为问的题基本都写出来了,聊天感觉也还好。不过4天后接到电话
reject。
想想应该还是自己基础不扎实,这次题都比较简单,面试官可能觉得应该在更短的时间
内完成的。
哎,继续努力吧,求内推啊!