偶来北京已经有两周了,第一周正处于十一长假中,没有投简历,四处逛游了一圈。 黄金周刚过,偶就开始投简历。9号就接到了第一家面试的通知,谢谢博采**公司的照顾。
中午去面试,直到走进公司,开始第一轮的面试,我才知道公司大致是经营足球彩票的。由于之前没有得到公司的任何消息,在主管问我对足球是否感兴趣时,我说不感兴趣,正好犯了他们的忌讳。因此希望大家在接到面试通知的时候一定要问清楚公司的名字,以便于在面试之前搜索一些公司的知识。面试程序员,当然要做笔试,公司是经营网络的,由于与网络有关,所以离不开数据库和网络编程。数据库是偶研究了3年的东西,网络编程偶从04年开始一直手写HTML标签,所以笔试的题目偶基本上都会。数据库的题目也就是关于表的连接,聚合函数的使用,排序。无在乎select ,from ,where ,order by,group by,avg等这几个了。网络编程考的是标签,对方给出一个跨行和跨列的表,要求使用那标签描述出来。使用colspan,rowspan这两个TD的属性就可以搞定,在最后的面试中偶才知道为什么要考这么简单的问题,经理说这些表格在有计算机的情况下,大部分面试的人都能画出来,但是能写代码的人就不多了,偶暗自庆幸一直手工输入HTML。当然也有一个题偶感觉有点突然,好像是要给偶一个下马威,也就是第一题了,让偶好想了2分钟。题目大致如下,如有两者变量a=1234,b=2345,他们的值是随机的整数,如何在不使用中间变量的情况下交换两个变量的值?第一道题偶没有遇到过,于是左思右想,右思左想,等到快要放弃的时候偶才想起一个解决这种问题的思路。第一,它给出这个问题那就肯定有答案,第二,答案就在a,b上做文章。交换的时候肯定有一个值保存了两个变量的值,如何才能保存两个数的值哪,相加!之后再相减。这样就有了思路,慢慢得出结论,a=a+b,b=a-b,a=a-b;第一个问题就搞定了。
接下来的一家面试基本上也是这些问题,不过更偏重于理论,竟然考数据结构中的排序算法,让写出算法的名字,然后写出一种算法来。当然冒泡排序是最基本的,剩下的大约8种算法名字就不列举了,大家自己看吧,如果有时间我会给大家写出来的。最后一道题是这样的,a,b两个人轮流从一堆500个球中向外面拿球,最多一次拿5个,最少拿1个,每次必须得拿,a先拿,问:a第一次拿几个,以后每次怎么拿才能保证a拿到最后一个球?呵呵,问题让人感觉毫无头绪,中间那么多不确定因素,该怎么选择,偶慌张了一下,马上想到问题肯定有答案,于是便开始从最后的情况向前推,如果最后剩下6个球,并且由B拿,那么a 就达到目的了,再向前推,还是6个,也即是说两个人各自拿过之后,两人拿球之和一定能保证为6,这是个确定性的因素,因此结果与6有关。稍微思考便得知,第一次拿2个球(500 %6),之后b开始拿,只要保证b,a拿球之和为6便可以使a拿到最后的球。
欢迎指正。
本文转自凌辉博客51CTO博客,原文链接http://blog.51cto.com/tianli/46558如需转载请自行联系原作者
lili00okok