校园招聘 - 比较容易的面试题

简介:

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

1. 只考数据结构的题目

不少同学觉得《编程之美》上面的题目太难了, 还要写那么多程序… 好, 其实也有很简单的问题, 例如这一个 - 只考数据结构的知识:

 

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

 

image (图1)

 

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

 

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

 

 

image (图2)

 

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

image(图3)

 

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

 

image (图4 – wikipedia)

 

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

 

 

 

2. 举一反一的问题

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

 

image 

 

3. 人月的问题

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

image 

 

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

 

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

 

你可能会说, 这很难吧,   但是另一家搜索引擎似乎轻易地解决了这个问题 (例子)。 所以, 还是有办法的。

 

这个题目要求你:

1) 试验不同的输入, 反推出目前微软的学术搜索是如何实现搜索建议 (Query Suggestion)的。

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

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

 

 

----

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

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

 

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






本文转自SoftwareTeacher博客园博客,原文链接:http://www.cnblogs.com/xinz/archive/2011/10/10/2205232.html,如需转载请自行联系原作者

目录
相关文章
|
7月前
|
XML 前端开发 JavaScript
《浅谈架构之路:前后端分离模式》,面试篇2015校园招聘求职大礼包
《浅谈架构之路:前后端分离模式》,面试篇2015校园招聘求职大礼包
|
7月前
|
算法 定位技术 数据中心
中国工商银行数据中心科技菁英校园招聘面试经历与体检情况
中国工商银行数据中心科技菁英校园招聘面试经历与体检情况
240 2
|
7月前
|
SQL 关系型数据库 MySQL
2023春季招聘面试集锦:MYSQL数据库高频面试题
2023春季招聘面试集锦:MYSQL数据库高频面试题
121 0
|
消息中间件 设计模式 分布式计算
大厂招聘重点全在这!GitHub置顶Java基础-高级面试库+自学路线
最近几年经常会听见这样一种声音:“程序员是吃青春饭的,年龄一大就不吃香了”,在当下这种互联网产业增速放缓,甚至隐约展现出疲态的时刻,此类言论就很有市场。
|
存储 算法 网络协议
面试宝典之阿里巴巴校园招聘笔试题
面试宝典之阿里巴巴校园招聘笔试题
198 0
|
存储 算法 网络协议
面试宝典之阿里巴巴校园招聘笔试题
面试宝典之阿里巴巴校园招聘笔试题
104 0
|
中间件 开发工具 git
【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)
【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)
【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)
|
Java Spring
《云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧》电子版地址
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧
122 0
《云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧》电子版地址
|
开发者 容器
招聘管理综合实践——面试流程搭建|学习笔记
快速学习招聘管理综合实践——面试流程搭建
招聘管理综合实践——面试流程搭建|学习笔记
|
前端开发 JavaScript 数据可视化
基于Springboot+MybatisPlus的学校企业就业求职面试招聘管理系统
基于Springboot+MybatisPlus的学校企业就业求职面试招聘管理系统
277 0
基于Springboot+MybatisPlus的学校企业就业求职面试招聘管理系统

热门文章

最新文章