Monday, July 27, 2015

朋友帮忙推荐给recruiter的,两轮电面之后拿到onsite。 
第一轮: 老印,上来一道题,讲了半天我才弄明白。类似手机按键,比如手机按键上2对应‘abc’, 然后根据‘abc’的顺序,打出a要按一下键,b要按两下键,c要按三下键。给你两个数组: keySize[] 每个element代表能存放的最多character,frequency[]每个element代表每个character出现的频率。要算出最少的按键次数。 Follow up 1: 怎么能提高效率。 Follup up 2: 如果要求character放在按键上的顺序是order的,类似于手机shang的字母按键,这样最少按键次数是多少。

第二轮:还是个烙印: 第一题:rotated sorted array search. 让后要求cut branch。 第二题: sort an array contains only 3 element,类似leetcode的sort colors。 follow up: what if there are N element? 没想出来, hint是可以使用extra memery. more info on 1point3acres.com

第三轮: 简历问题为主,问了一道code: check the first bad version..鏈枃鍘熷垱鑷�1point3acres璁哄潧

结果还是跪了。问题应该出在第一轮面试上,code写了好久才写出来,follow up也没答上。其实题目也不算很难,大家好运吧。

好吧,可能是我表达不好,第一题不画个图真不大好说。
鏉ユ簮涓€浜�.涓夊垎鍦拌鍧�. 
例子就是我们的手机,几乎每个键都对应字母: key2 -> 'abc', key3 -> 'def', key4 -> 'ghi'....老式的手机打字的原理是,如果你要打出a,你需要按1下key2. 如果要打出b,你需要按2下key2, 打出c就要按3下key2,因为c排在key2的第三位。

所以题目是给出,keySize[] 每个element代表能存放的最多character, 比如上面的例子就是[3,3,3],因为每个key都能最多放3个字母; 还有frequency[],每个element代表每个character出现的频率。要求把character排入key中,通过上面的方法打出所有frequency数组中的character,最少的按键次数。

下面给个例子,比如我们的keysize是 [3,1,2],我们的character的frequency是 [3,3, 3, 2,1,1]。 如果把frequency中头三个字母index0 - index2放入key1, index3放入key2,index4-index5放入key3,这样的按键次数就是 3*1 + 3*2 + 3*3 + 2*1 + 1*1 + 1*2。character可以daluan随意放,只要不超过keySize的limit。
. 鐗涗汉浜戦泦,涓€浜╀笁鍒嗗湴
follow up的要求就是character必须要找 frequency的order来,index2必能放在index1之前。

No comments:

Post a Comment