微软面试算法题目

上传人:第*** 文档编号:37986033 上传时间:2018-04-25 格式:DOC 页数:9 大小:118.56KB
返回 下载 相关 举报
微软面试算法题目_第1页
第1页 / 共9页
微软面试算法题目_第2页
第2页 / 共9页
微软面试算法题目_第3页
第3页 / 共9页
微软面试算法题目_第4页
第4页 / 共9页
微软面试算法题目_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《微软面试算法题目》由会员分享,可在线阅读,更多相关《微软面试算法题目(9页珍藏版)》请在金锄头文库上搜索。

1、微软十五道面试题1、有一个整数数组,请求出两两之差绝对值最小的值, 记住,只要得出最小值即可,不需要求出是哪两个数。2、写一个函数,检查字符是否是整数,如果是,返回其整数值。 (或者:怎样只用 4 行代码编写出一个从字符串到长整形的函数?) 3、给出一个函数来输出一个字符串的所有排列。 4、请编写实现 malloc()内存分配函数功能一样的代码。 给出一个函数来复制两个字符串 A 和 B。字符串 A 的后几个字节和字符串 B 的前几个字节 重叠。 5、怎样编写一个程序,把一个有序整数数组放到二叉树中? 6、怎样从顶部开始逐层打印二叉树结点数据?请编程。 7、怎样把一个链表掉个顺序(也就是反序,

2、注意链表的边界条件并考虑空链表)?8、请编写能直接实现 int atoi(const char * pstr)函数功能的代码。9、编程实现两个正整数的除法 编程实现两个正整数的除法,当然不能用除法操作符。 / return x/y. int div(const int x, const int y) . 10、在排序数组中,找出给定数字的出现次数 比如 1, 2, 2, 2, 3 中 2 的出现次数是 3 次。11、平面上 N 个点,每两个点都确定一条直线, 求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑) 。时间效率越高越好。12、一个整数数列,元素取值可能是 065535 中

3、的任意一个数,相同数值不会重复出现。 0 是例外,可以反复出现。 请设计一个算法,当你从该数列中随意选取 5 个数值,判断这 5 个数值是否连续相邻。 注意: - 5 个数值允许是乱序的。比如: 8 7 5 0 6 - 0 可以通配任意数值。比如:8 7 5 0 6 中的 0 可以通配成 9 或者 4 - 0 可以多次出现。- 复杂度如果是 O(n2)则不得分。13、设计一个算法,找出二叉树上任意两个结点的最近共同父结点。 复杂度如果是 O(n2)则不得分。14、一棵排序二叉树,令 f=(最大值+最小值)/2, 设计一个算法,找出距离 f 值最近、大于 f 值的结点。 复杂度如果是 O(n2)

4、则不得分。15、一个整数数列,元素取值可能是 1N(N 是一个较大的正整数)中的任意一个数,相 同数值不会重复出现。 设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于 N+1。 复杂度最好是 O(n),如果是 O(n2)则不得分。谷歌八道面试题16、正整数序列 Q 中的每个元素都至少能被正整数 a 和 b 中的一个整除,现给定 a 和 b, 需要计算出 Q 中的前几项,例如,当 a=3,b=5,N=6 时,序列为 3,5,6,9,10,12 (1)、设计一个函数 void generate(int a,int b,int N ,int * Q)计算 Q 的前几项 (2)、设

5、计测试数据来验证函数程序在各种输入下的正确性。17、有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在 答谢字母的前面(大写或小写字母之间不要求保持原来次序) ,如有可能尽量选择时间和空 间效率高的算法 c 语言函数原型 void proc(char *str) 也可以采用你自己熟悉的语言18、如何随机选取 1000 个关键字 给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关 键字) 。如何才能从这个无穷尽的流中随机的选取 1000 个关键字?19、判断一个自然数是否是某个数的平方 说明:当然不能使用开方运算。20、给定能随机生成整数 1

6、到 5 的函数,写出能随机生成整数 1 到 7 的函数。21、1024! 末尾有多少个 0?22、有 5 个海盗,按照等级从 5 到 1 排列,最大的海盗有权提议他们如何分享 100 枚金币。但其他人要对此表决,如果多数反对,那他就会被杀死。 他应该提出怎样的方案,既让自己拿到尽可能多的金币又不会被杀死? (提示:有一个海盗能拿到 98%的金币)23、Google2009 华南地区笔试题给定一个集合 A=0,1,3,8(该集合中的元素都是在 0,9 之间的数字,但未必全部包含), 指定任意一个正整数 K,请用 A 中的元素组成一个大于 K 的最小正整数。 比如,A=1,0 K=21 那么输出结

7、构应该为 100。百度三道面试题24、用 C 语言实现一个 revert 函数,它的功能是将输入的字符串在原串上倒序后返回。25、用 C 语言实现函数 void * memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝 src 所指的内存内容前 n 个字节到 dest 所指的地址上。分析:由于可以把任何类型的指针赋给 void 类型的指针,这个函数主要是实现各种数据类 型的拷贝。26、有一根 27 厘米的细木杆,在第 3 厘米、7 厘米、11 厘米、17 厘米、23 厘米这五个位 置上各有一只蚂蚁。 木杆很细,不能同时通

8、过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会 朝前走或调头,但不会后退。 当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘 米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。腾讯七道面试题27、请定义一个宏,比较两个数 a、b 的大小,不能使用大于、小于、if 语句 28、两个数相乘,小数点后位数没有限制,请写一个高精度算法 29、有 A、B、C、D 四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时 1、2、5、10 分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排, 能够在 17 分钟内这四个人都过桥? 30、有

9、12 个小球,外形相同,其中一个小球的质量与其他 11 个不同, 给一个天平,问如何用 3 次把这个小球找出来,并且求出这个小球是比其他的轻还是重31、在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出 思路即可。32、一个文件中有 40 亿个整数,每个整数为四个字节,内存为 1GB,写出一个算法:求出 这个文件里的整数里不包含的一个整数33、腾讯服务器每秒有 2w 个 QQ 号同时上线,找出 5min 内重新登入的 qq 号并打印出来。雅虎三道面试题34、编程实现:把十进制数(long 型)分别以二进制和十六进制形式输出,不能使用 printf 系 列35、编

10、程实现:找出两个字符串中最大公共子字符串,如“abccade“,“dgcadde“的最大子串为 “cad“36、有双向循环链表结点定义为: struct node int data;struct node *front,*next; ;有两个双向循环链表 A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中 data 值相同的结点删除。联想五道笔试题37、1)、设计函数 int atoi(char *s)。 2)、int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少? 3)、解释局部变量、全局变量和静态变量的含义。 4)、解释堆

11、和栈的区别。 5)、论述含参数的宏与函数的优缺点。38、顺时针打印矩阵 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:如果输入如下矩阵:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16则依次打印出数字 1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。分析:包括 Autodesk、EMC 在内的多家公司在面试或者笔试里采用过这道题。39、对称子字符串的最大长度 题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。 比如输入字符串“google” ,由于该字符串里最长的对

12、称子字符串是“goog” ,因此输出 4。分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数 的加强版。40、用 1、2、2、3、4、5 这六个数字,写一个 main 函数,打印出所有不同的排列, 如:512234、412345 等,要求:“4“不能在第三位,“3“与“5“不能相连.41、微软面试题 一个有序数列,序列中的每一个值都能够被 2 或者 3 或者 5 所整除,1 是这个序列的第一 个元素。求第 1500 个值是多少?网易五道游戏笔试题42、两个圆相交,交点是 A1,A2。现在过 A1 点做一直线与两个圆分别相交另外一点 B1,B2。B1B2 可以绕着 A

13、1 点旋转。问在什么情况下,B1B2 最长43、Smith 夫妇召开宴会,并邀请其他 4 对夫妇参加宴会。在宴会上,他们彼此握手, 并且满足没有一个人同自己握手,没有两个人握手一次以上,并且夫妻之间不握手。 然后 Mr. Smith 问其它客人握手的次数,每个人的答案是不一样的。求 Mrs Smith 握手的次数44、有 6 种不同颜色的球,分别记为 1,2,3,4,5,6,每种球有无数个。现在取 5 个球,求在 一下 的条件下: 1、5 种不同颜色, 2、4 种不同颜色的球, 3、3 种不同颜色的球, 4、2 种不同颜色的球, 它们的概率。45、有一次数学比赛,共有 A,B 和 C 三道题目

14、。所有人都至少解答出一道题目,总共有 25 人。 在没有答出 A 的人中,答出 B 的人数是答出 C 的人数的两倍;单单答出 A 的人,比其他答 出 A 的人 总数多 1;在所有只有答出一道题目的人当中,答出 B 和 C 的人数刚好是一半。求只答出 B 的人数。46、从尾到头输出链表 题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode int m_nKey;ListNode* m_pNext; ;分析:这是一道很有意思的面试题。该题以及它的变体经常出现在各大公司的面试、笔试 题中。47、金币概率问题(威盛笔试题)题目:10 个房间里放

15、着随机数量的金币。每个房间只能进入一次,并只能在一个房间中拿 金币。 一个人采取如下策略:前四个房间只看不拿。随后的房间只要看到比前四个房间都多的金 币数, 就拿。否则就拿最后一个房间的金币。?编程计算这种策略拿到最多金币的概率。 48、找出数组中唯一的重复元素1-1000 放在含有 1001 个元素的数组中,只有唯一的一个元素值重复,其它均只出现一 次 每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间, 能否设计一个算法实现?49、08 百度校园招聘的一道笔试题题目大意如下: 一排 N(最大)个正整数+1 递增,乱序排列,第一个不是最小的,把它换成-1, 最小数为且未知求

16、第一个被-1 替换掉的数原来的值,并分析算法复杂度。50、一道 SPSS 笔试题求解题目:输入四个点的坐标,求证四个点是不是一个矩形 关键点: 1.相邻两边斜率之积等于-1, 2.矩形边与坐标系平行的情况下,斜率无穷大不能用积判断。 3.输入四点可能不按顺序,需要对四点排序。51、矩阵式螺旋输出52、求两个或 N 个数的最大公约数和最小公倍数。53、最长递增子序列题目描述:设 L=是 n 个不同的实数的序列,L 的递增子序列是这样一个子序 列Lin=,其中 k1=n=B ,则 n 属于该行; 如果 n 同时属于行 i 和 j ,则 i 和 j 有重叠区间;重叠区间的大小是同时属于行 i 和 j 的整 数个数。 例如,行(10 20

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号