b********t 发帖数: 2 | 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。
想想应该还是自己基础不扎实,这次题都比较简单,面试官可能觉得应该在更短的时间
内完成的。
哎,继续努力吧,求内推啊! |
x*******1 发帖数: 28835 | |
x****m 发帖数: 1084 | |
w********s 发帖数: 1570 | 4 不要老想着hashmap啊,这个开销很大的。
比如string求奇数的问题,可以开一个int[26]数组,
string="ababcdgeef"
那么当扫到a的时候,array[0]=array[0]^1 = 1;
当扫到b的时候,array[1]=array[1]^1 = 1;
第三个a的时候,array[0]=array[0]^1 = 0;
扫完后,遍历数组,print if array[k] = 1;
只用了一次循环,只用异或运算
【在 b********t 的大作中提到】 : 第一轮: : 印度小哥,先讲project。 : 实现一个二叉树的类,包含parent节点。 : 给一个二叉树的任意节点,返回inorder遍历的下一个节点。 : 刚开始写了返回右子树最左边的节点,后来经提醒补充了没有子树要从parent里找的情 : 况。中间穿插问了一些java和数据结构的小问题,不难。 : 第二轮: : 白人,kindle组搞测试的,先是自我介绍。 : 然后写题:给一个string,返回出现频率最高的字符。 : 先给他讨论思路,问他这些char在不在ASCII范围内,他说good question,不一定。
|
w********s 发帖数: 1570 | 5 奇数的话要想到异或,
偶数个char异或后是0,奇数个是1
因为有不同的char,所以开一个"数组"空间,其实每个元素只需要1bit就够了。最小的
开销只有26bit,连一个int都不到。
你用hashmap,比这个要浪费很多空间,而且计算也复杂很多。 |
b********t 发帖数: 2 | 6 不好意思,要纠正一个小错误,第三轮第一题是给的一个integer array,不是string。
不过你这个方法很好。
【在 w********s 的大作中提到】 : 奇数的话要想到异或, : 偶数个char异或后是0,奇数个是1 : 因为有不同的char,所以开一个"数组"空间,其实每个元素只需要1bit就够了。最小的 : 开销只有26bit,连一个int都不到。 : 你用hashmap,比这个要浪费很多空间,而且计算也复杂很多。
|