第0轮:做coding exercise,一个小时,实际5分钟就搞完了,后面一直在写testcase
给三个参数,s,l,d,分别代表小砖长度,大砖长度,目标长度,砖的数量无限,问有无
可能达到目标长,返回true or false;
比如1,2,5 返回true,因为1+2+2=5
我的code:
if(s > l || s <= 0 || l <= 0 || d <= 0)
throw new Exception ();
for(int i = 0; i <= d; i += l)
if((d - i) % s == 0)
return true;
return false;
第一轮:1.上来先问我这code的问题,感觉面试官没看懂,拿了一堆类似1,X , Y的数
据测我程序,我都看不下去了,小砖长度为1,我第一次循环直接就true了啊,有毛好
测的。。后来我提示了一下,他测了个2,5, 8..还是第一次就出结果。。有意思么。。
2.matrix rotate 90度。。非常基本的题,先让我跟他讲思路,怎么讲感觉他
都不理解,后来终于趁他若有所思的时候开始写code了,写完了他还不懂,又是4*4的
矩阵,每个element都要跑一遍给他看,简直无语,看完好像还是没懂我是啥意思
3.design 数据库,纯建一个表就完事了,加点key,foreign key什么的
4.merge two sorted linklist,这次他总算看懂我代码了,啥也没问
第二轮:1.OO design。design Duck。Duck has many species,different species
有不同的叫声,但是飞翔和游泳是一样的。我就搞了个抽象类继承下什么的。后来变成
有N种飞行,问我怎么改,我SB了,写了N种飞行method在父类里,另外还有个主fly
method,根据鸟的fly类型在主fly method里调用不同的method;然后他告诉我应该定
义一个fly class.这个没答好
2.basic questions: deadlock, how to synchronize, database join,
singleton 这个基本不难,就问的点比较杂
第三轮:1.has a Random5() which generate random number from 1-5. Write a
function generate 1-125
我的code:
int Random125(){
int result=0;
result+=25*(Random5()-1);
result+=5*(Random5()-1);
result+=(Random5()-1);
if(result==0)
return 125;
return result;
}
然后这面试官又说我这个不是evenly random,说中间的数出现的多,两边的数出
现的少。。我擦,这不可能啊。。解释了很久面试官不信不耐烦了搞下一题了
2.问我怎么处理推特这样的大规模读写数据的请求,系统设计吧相当于。
最后说到cache上,我拿LRU解决的,所以就implement LinkedHashMap,然后写
了个LRU算法。。最后问还有没有改进
这个我基本都答上来了,还行
间隔着问些简历上的东西,我就不说了
CEO review,希望不出什么意外= =!
No comments:
Post a Comment