又到校园招聘的季节了, 自从和一些同事出版了《编程之美》一书之后, 我常常收到一些关于面试, 编程,  和“题库”的询问。 事实上我自己对算法没有什么研究, 有些问题都答不上,  研究院近期搬了一次家, 原来的 “题库”也不知道搬到那一层楼去了。  只是, 常在河边走, 哪能不湿鞋?  在微软亚洲研究院这个水非常深的地方混,  一些题目还是打湿了我的脚。  今天新的校园招聘 正式開始了,  我准备了几个比較easy的题目, 作为 “献礼”。这些题目不是一上来就刷刷刷写代码的那种, 我自己都不知道最佳解法是什么, 假设你有好的想法, 能够讨论一下.

1. 仅仅考数据结构的题目

不少同学认为《编程之美》上面的题目太难了, 还要写那么多程序… 好, 事实上也有非常easy的问题, 比如这一个 - 仅仅考数据结构的知识:

《编程之美》 中提到 “求数组最大子数组的和”这一题目,

 (图1)

脑快手快的同学写一个 10 行的程序就把这个问题搞定了。

我们还把这个问题扩展到二维, 比如:

(图2)

我还问过一些同学, 假设数组首尾相连, 像一个轮胎一样, 又怎么办呢? 这些同学也给出了美丽的答案, 而且用 SilverLight/WPF 给画了出来:

(图3)

好,设想我们有一张纸带,两面都写满了像 [图2] 那样的数字, 我们把纸带的一端扭转, 和还有一端接起来, 构成一个莫比乌斯环 (Möbius Strip).

(图4 – wikipedia)

我想虽然这个纸带扭了一下,  可是上面还是有数组, 还是有最大子数组的和, 对么? 在求最大子数组的和之前, 我们用什么样的数据结构来表示这些数字呢? 你能够用 Java, C, C#, 或其它语言的数据结构来描写叙述这个莫比乌斯环上的数组。数据结构搞好了, 算法自然就有了。

2. 举一反一的问题

《编程之美》的第一题是让Windows 任务管理器的CPU 使用率曲线画出一个正弦波。我一直在想, 能不能把CPU 使用率边上的网络使用率也如法炮制一下呢?  比方, 也来一个正弦曲线?

3. 人月的问题

假设你没看过, 也至少听说<人月神话>  (The Mythical Man-month) 这本在软件project领域非常有影响的书.  当你在微软学术搜索中输入 “manmonth” 这个词的时候, 你会意外地碰到以下这个错误:

经过几次试验之后, 你发现必需要输入 “man-month” 才干得到希望的结果。 这不就是仅仅差一个  ‘-’ 符号么?  为什么这个搜索引擎不能做得聪明一些, 给一些提示 (Query Suggestion)? 或者自己主动把用户想搜的结果展现出来 (Query Alteration)?   我们在输入比較长的英文单词的时候, 也难免会敲错一两个字母, 站点应该帮助用户, 而不是冷冰冰地拒绝用户啊。

微软的学术搜索 (Microsoft Academic Search) 索引了超过 3千万的文献,  2 千万的人名, 怎么能以比較小的代价, 对常常出现的输入错误提供提示? 或直接显示相关结果, 避免用户重复尝试输入的烦恼?

你可能会说, 这非常难吧,   可是还有一家搜索引擎似乎轻易地攻克了这个问题 (样例)。 所以, 还是有办法的。

这个题目要求你:

1) 试验不同的输入, 反推出眼下微软的学术搜索是怎样实现搜索建议 (Query Suggestion)的。

2) 提出自己的改进建议,  并论证这个解决方式在千万级数据规模上能达到 “足够好” 的时间 (speed) 和空间 (memory usage)效率。

3) 预计这事需要几个 人·月 (man-month) 才干做完?

----

有人问, 把题目都公开出去, 大家都知道答案了, 我们还怎么面试啊?

回答: 这就看面试官的功夫了.

三个题目都做好的应届毕业生, 请直接找我。

校园招聘 - 比較easy的面试题的更多相关文章

  1. 各大IT公司校园招聘程序猿笔试、面试题集锦

    转自:http://blog.csdn.net/hackbuteer1/article/details/7959921#t4 百度一面 1.给定一个字符串比如“abcdef”,要求写个函数编程“def ...

  2. 阿里巴巴集团2014年校园招聘系统project师北京笔试题

    第一部分 单选题(前10题,每题2分;后10题,每题3分;共50分.选对得满分,选错倒扣一分,不选得0分.) 1.字符串"alibaba"有 个不同的排列. A. 5040 B. ...

  3. 2014 WAP校园招聘笔试题

    2014 WAP校园招聘笔试题 Problem's Link:   http://www.doc88.com/p-6751117015483.html WAP公司笔试题 We are planning ...

  4. google2013校园招聘笔试题(全国)

    google2013校园招聘笔试题 1. 单项选择题1.1如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少.关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝 ...

  5. Microsoft 2013校园招聘笔试题及解答

    Microsoft 2013校园招聘笔试题及解答 题目是自己做的,求讨论.吐槽.拍砖 1.      Which of the following callingconvension(s) suppo ...

  6. Microsoft2013校园招聘笔试题

    Microsoft2013校园招聘笔试题 继续求拍砖!!!! 1. You are managing the database of a book publichser, you currently ...

  7. C# - 2017微软校园招聘笔试题 之 MS Recognition[待解决]

    MS Recognition 在线提交: hihoCoder 1402 http://hihocoder.com/problemset/problem/1402 类似: OpenJudge - I:P ...

  8. 2018春季校园招聘笔经面经合集:Java开发岗

    2018春季校园招聘笔经面经合集:Java开发岗 以下为精选面经: 美团外卖配送部后台开发面经 nowcoder.com/discuss/76 春招总结,干货满满 nowcoder.com/discu ...

  9. 我是怎么和SAP结缘的 - Jerry的SAP校园招聘之路

    2006年9月,结束了一年的北京中科院实习后,我回到了电子科技大学,此时已经是研三上学期了.有着"金九银十"之称的秋季校园招聘正式开始了. 准备好了简历后,Jerry也加入了浩浩荡 ...

随机推荐

  1. Vnstat: 简单实用的网络流量统计工具

    官方主页: http://humdi.net/vnstat # Ubuntu 安装: (其本上其它发行版的包管理程序中也都包含了这款软件,请自行安装) sudo apt-get install vns ...

  2. 《转》读discuzx3.1 数据库层笔记

    最近开始在看discuzx3.1的代码,看到数据库层的实现,discuzx的数据库层能够支撑数据库分库,分布式部署,主要水平分表,也可以很方便的支持其他数据库.性能上,可以做读写分离,支持数据缓存.可 ...

  3. C#文本文件或其他文件新内容追加

    以txt文本为例,以下代码实现a.txt文件中追加内容 FileStream mystream = new FileStream("C:\\a.txt", FileMode.Ope ...

  4. C++箴言:避免构造或析构函数中调用虚函数

    如果你已经从另外一种语言如C#或者Java转向了C++,你会觉得,避免在类的构造函数或者析构函数中调用虚函数这一原则有点违背直觉.但是在C++中,违反这个原则会给你带来难以预料的后果和无尽的烦恼. 正 ...

  5. 【每天一个Linux命令】12. Linux中which命令的用法

    which  用来查看可执行文件的位置. 1.命令格式: which 可执行文件名称 2.命令功能: which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果. 3. ...

  6. oracle导入导出exp,imp

    exp dadifilm/oracle@dg file=/tmp/dadi.dmp full=y imp u_data/321@dg1  file=/dadi_desc.dmp Import: Rel ...

  7. 【G-BLASTN 1.0正式发布】

    [G-BLASTN 1.0正式发布]G-BLASTN使用GPU来加速NCBI-BLAST里的BLASTN模块,单块GTX780比四核CPU平均快6倍. http://www.comp.hkbu.edu ...

  8. 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统

    上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...

  9. Android的MVC框架

    http://www.cnblogs.com/wanghafan/archive/2012/07/20/2600786.html MVC是当前比较流行的框架,随便Google下,就可以发现几乎所有的应 ...

  10. Lambda表达式图解

    internal delegate int MyDel(int x); public class Lambda { ; };//匿名方法 ; };//Lambda表达式 ; };//Lambda表达式 ...