中国开发网: 论坛: 程序员情感CBD: 贴子 677583
张秋桥: 无聊时去CSDN看一下,看到四道微软面试算法题。
朋友去MS面试,我从他口里探到几道编程面试题。特来和各位分享。

(1)
一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。
请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。
注意:
- 5个数值允许是乱序的。比如: 8 7 5 0 6
- 0可以通配任意数值。比如:8 7 5 0 6 中的0可以通配成9或者4
- 0可以多次出现。
- 复杂度如果是O(n2)则不得分。

(2)
设计一个算法,找出二叉树上任意两个结点的最近共同父结点。
复杂度如果是O(n2)则不得分。

(3)
一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。
复杂度如果是O(n2)则不得分。

(4)
一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1。
复杂度最好是O(n),如果是O(n2)则不得分。


一开始给题目吓了一下。
稍微冷静想了下发现2,3,4简单的不能再简单了。1没有去想。

当然面试时候会不会给蒙住了,真的不好说。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录