上周日(4.22)的10点多接到电话,下午1:00去微软面试。中午在匆忙的准备,看全排列的算法、最长递增子序列的算法…差点迟到,到了12:50,借了小光的车就往微软冲。到了之后,被yang带进办公室,在一个小桌子上,开始面试。 首先,给10分钟写一个函数,合并两个单链表,一个递增,一个递减,要求就是写得尽可能的完善。10多分钟后我把程序给他看,然后他给了我第二个问题:一个湖中间有一艘船,船上有个人,扔了一个包袱到水里去,请计算一下水面的变化。我第一次听说这样的题目,第一反应是想到了水面的正弦波纹向四周扩散,我心想,这怎么算阿。我说我的想法,然后yang纠正了我,是计算水面的高度,我想想还是不对,那么大的湖,丢一个包袱,水面变化可以忽略不计嘛,这次yang总算说清楚问题了,请定性的分析一下水面高度的变化。我心想,你早说嘛,直接问我水面是上升还是下降不就行了。然后我脱口而出,显然上升嘛。不过我马上觉得,我肯定中招了,哪有这么简单的题目,应该要考虑到还有船在水里面,然后要从水给其他物体的浮力来考虑,如果包袱没有沉,那么水对于物体的浮力没有变,水面高度就不会变化。oh,yeah ! 还好我想明白了。 然后yang开始和我"探讨"链表合并的题目。。。。。。搞了大概一个半小时,因为总有细节没有处理好,改了又改,我晕了。最后他问我还有没有什么可以改进的,输入的指针a和b都不为空的时候,有一种情况,下面的操作都不用做。都提示到这个份上了,我当时还是没有想明白,最后他说,a等于b的情况怎么办?kao!我完全没有往这个方向想,我总认为写出来了,你调用的时候就要做好判断。 后来总算转换话题了,问我C++构造函数里面的初始化和初始化列表有什么区别?不知道,然后又问java的垃圾回收是怎么做的。这个我不懂,还好说了一些自己的看法,面试后回想起来,都还是说对了。 大概3点的时候结束的,临走的时候给了一道题,两个ico文件,一个是快捷方式的图标,一个是正常的图标,写程序合并这两个图标。6点钟发到他的邮箱,12点前可以不断的修改,最终以12点前的为准。回来的时候,感觉很不好,一个简单的问题搞了一个半小时,我觉得自己面得太垃圾了。然后对于他留的icon合并的题目完全没有头绪,干脆就放弃了。打魔兽,缓解一下心中的郁闷。 然而,并没有结束。 周一上午,yang给我打电话问我发了程序没有,我实话实说,觉得自己面得不好,没希望,就放弃了。他说,我要是想挑战一下自我的话,还是做一下这个程序。我当时听了很高兴。因为他既然打电话过来,那肯定就是对我有兴趣。我一定要抓住这次机会。 阿福帮我搜到了一篇很有用的文章,是把图标合并起来的,方式就是现LoadIcon,得到两个HICON对象,然后用DrawIconEx向同一块dc里面画,就可以得到一个新的HICON对象,而且效果很好。但是,怎么把HICON存成文件呢?于是我花了一下午找相关的资料,示例程序,ICO文件的存储结构,网上也有好多人问,但是就是没有符合我要求的答案,能够从HICON保存为ico文件的例子要么就是用到了mfc,而好不容易找到两个纯win32api的程序,定义了一堆数据结构让人看不懂,而且时间紧迫,下班前要交,我赶紧做了一份,但是我自己都不满意,为了表示我的诚意,我在邮件里写得很详细,我的思路,我的困难,解决问题的过程,然后,我说我晚上会继续写,争取半夜前再交一份。 (待续……)
-
Recent Posts
-
Categories
-
Archives
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007