iOS开发工程师匿名用户
1面是个技术,30岁上下
先叫我写单例模式,我写完了。问我如果是多线程如何加锁,多线程我不会,我直接就说不会了,他愣了,可能是想不通为什么我不会。
然后给我一个算法题,M= 2^a+3^b+5^c,a,b,c都是正整数,可以随便取值,求第十万个数。
我开始慢慢算,1,2,3,2*2,5,2*3,2^3,3*3,2*5……发现得不到什么有规律的解,貌似数学公式不行。然后他给提示,但他的提示却给我推翻了,他又愣了,说他也忘了怎么做了,额,天然呆么。
最后说shell你用过么,我说没有。他写了shell的句子,要我写解析器,我写了一个,但是他不满意,就离开了。
2面是无线组经理,小明面试过很多公司,在大陆在香港,100场没有50+是肯定有的,这位经理是唯一一位从面试开始到结束都几乎没有正眼看过我的一位,因为如此我对他印象深刻。
题目:数组求连续串和最大
这题前面已经说过,不赘述。
变1:如果是全负数也要是最大的那个负数,不能不选择值
这没什么,他突然问我如何表示32位机所能表示的最小值,我不知道,猜了个答案,他有些轻蔑的笑了笑。
变2:求两个连续串,要求和最大
我说用变1的方法,抽出两个串就行,他说不对。比如串-100,3,-2,3,-100,-1,-100
按照之前的算法,得出的串应该是3,-2,3与-1,但正确答案应该是3和3
我想了一下,说用动态规划来做,从左边开始每一个数都记录下到该数的最大子串和,同样的,从右边开始每一个数都记录下到该数的最大子串和,最后从这两串值里面挑出区域不重合的并且和最大的就可。他说这个解是正确的。然后就随便聊了一小会离开了。
两轮面试时间0.9+0.7,结果失败