趁记忆还是热乎的的,来记一下。面试时间是早上7点到8点。为了和美国调整时差。
面试官是个温柔的小哥哥。刚开始就直奔主题出了一道题。
给定一个整数数组,数组长度不超过2000,数组元素范围为[0,1000]。求其中最大的一个不重复元素。
我给出的解法一:用一个长度为1001的大数组,用元素作为索引值存入。最后倒着遍历,得到第一个数组值为1的值即为结果。
解法二:用hash表。
解法一:面试官反复问了用例该怎么写,以及一些边界值注意事项(元素值为0和1000)。
长度为0和1为特殊处理值。
用例:
都是重复元素:比如都是0或1000。包含有多种重复元素。1个0,999个1000.
都是不重复元素。
解法二:要求描述出具体的代码写法。result=-1和Integer.MaxValue。
后来题目升阶了,元素值为1到1000.出现次数为偶数,顶多存在一个非重复元素。
典型的异或解决办法啊。(途中把异或说成了位运算,尴尬)
后面介绍了整个面试流程,总共五面,英文占比并不是很大。