微软四道经典算法面试题(附思路)
微软公司面试题及答案
4.一个岔路口分别通向诚实国和说谎国。来了两个人 已知一个是
诚实国的 另一个是说谎国的。诚实国永远说实话 说谎国永远说
谎话。现在你要去说谎国 但不知道应该走哪条路 需要问这两个
人。请问应该怎么问
5.12个球一个天平 现知道只有一个和其它的重量不同 问怎样称
Bono需花1 分钟过桥 Edge需花2分钟过桥 Adam需花5分钟过桥
Larry需花10分钟过桥 他们要如何在17分钟内过桥呢 (这是
Micrsoft征聘人员时问的问题 你必须 在五分钟内答出来才可能获
给了逻辑学家一个求生的赌注机会。但是 逻辑学家在他哈哈大笑的
同时也在心里暗自窃喜 因为对于逻辑学家来说 不存在什么赌注机
会 自己是可以必然求生的。接着他向留下来的助手说了一句话 按
助手的回答 准确无误地走向了自由之门。 他说的是什么话 3.100
个人组成10*10的方队 横队称为行 纵队称为列。从每一行中挑出
把①⑨与⑩⑾作第二次称量
⒈如相等 说明⑿特别 把①与⑿作第三次称量即可判断是⑿是重
还是轻
⒉如①⑨ ⑩⑾说明要么是⑩⑾中有一个重的 要么⑨是轻的。
把⑩与⑾作第三次称量 如相等说明⑨轻 不等可找出谁是重球。
⒊如①⑨ ⑩⑾说明要么是⑩⑾中有一个轻的 要么⑨是重的。
把⑩与⑾作第三次称量 如相等说明⑨重 不等可找出谁是轻球。
小时
则30°X=60(X-n) 6°
即X=12n/11。
此时时针分针的位置是30°X=(360/11)n°=(32+8/11)n°
秒针的位置是
360(X-n)6°=(4320/11)n°=(392+8/11)n°=360n°+(32+8/11)n°=(32+8/11
软件工程师微软面试题
微软面试题—很变态但很经典第一组1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4.一个岔路口分别通向诚实国和说谎国。
来了两个人,已知一个是诚实国的,另一个是说谎国的。
诚实国永远说实话,说谎国永远说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6.在9个点上画10条直线,要求每条直线上至少有三个点?7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8.怎么样种植4棵树木,使其中任意两棵树的距离相等?1.为什么下水道的盖子是圆的?2.中国有多少辆汽车?3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5.多少个加油站才能满足中国的所有汽车?6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8.你怎样将Excel的用法解释给你的奶奶听?9.你怎样重新改进和设计一个ATM银行自动取款机?10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。
微软的面试题及答案(超变态但很经典)
第⼀组题答案: 1)三根绳,第⼀根点燃两端,第⼆根点燃⼀端,第三根不点,第⼀根绳烧完(30分钟)后,点燃第⼆根绳的另⼀端,第⼆根绳烧完(45分钟)后,点燃第三根绳⼦两端,第三根绳烧完(1⼩时15分)后,计时完成 2)根据抽屉原理,4个 3)3升装满;3升-〉5升(全注⼊);3升装满;3升-〉5升(剩1升);5升倒掉;3升-〉5升(注⼊1升);3升装满;3升-〉5升;完成(另:可⽤回溯法编程求解) 4)问其中⼀⼈:另外⼀个⼈会说哪⼀条路是通往诚实国的?回答者所指的那条路必然是通往说谎国的。
5)12个球: 第⼀次:4,4 如果平了:那么剩下的球中取3放左边,取3个好球放右边,称:如果左边重,那么取两个球称⼀下,哪个重哪个是次品,平的话第三个重,是次品,轻的话同理,如果平了,那么剩下⼀个次品,还可根据需要称出次品⽐正品轻或者重,如果不平:那么不妨设左边重右边轻,为了便于说明,将左边4颗称为重球,右边4颗称为轻球,剩下4颗称为好球,取重球2颗,轻球2颗放在左侧,右侧放3颗好球和⼀颗轻球,如果左边重,称那两颗重球,重的⼀个次品,平的话右边轻球次品。
如果右边重,称左边两颗轻球,轻的⼀个次品。
如果平,称剩下两颗重球,重的⼀个次品,平的话剩下那颗轻球次品 13个球: 第⼀次:4,4,如果平了。
剩5颗球⽤上⾯的⽅法仍旧能找出次品,只是不能知道次品是重是轻。
如果不平,同上 6) o o o o o o o o o 7) 23次,因为分针要转24圈,时针才能转1圈,⽽分针和时针重合两次之间的间隔显然>1⼩时,它们有23次重合机会,每次重合中秒针有⼀次重合机会,所以是23次 重合时间可以对照⼿表求出,也可列⽅程求出 8) 在地球表⾯种树,做⼀个地球内接的正四⾯体,内接点即为所求 第⼆组⽆标准答案 第三组 1. 分成1,2,4三段,第⼀天给1,第⼆天给2取回1,第3天给1,第4天给4取回1、2,第5天给1,第6天给2取回1,第七天给1 2. 求出⽕车相遇时间,鸟速乘以时间就是鸟飞⾏的距离 3. 四个罐⼦中分别取1,2,3,4颗药丸,称出⽐正常重多少,即可判断出那个罐⼦的药被污染 4. 三个开关分别:关,开,开10分钟,然后进屋,暗且凉的为开关1控制的灯,亮的为开关2控制的灯,暗且热的为开关3控制的灯 5. 因为可以⽤1,2,5,10组合成任何需要的货币值,⽇常习惯为10进制 6. 题意不理解...*_* 7. 012345 0126(9)78 第四组都是很难的题⽬ 第⼀题:97 0 1 2 0 或者 97 0 1 0 2 (提⽰:可⽤逆推法求出) 第⼆题:3架飞机5架次,飞法: ABC 3架同时起飞,1/8处,C给AB加满油,C返航,1/4处,B给A加满油,B返航,A到达1/2处,C从机场往另⼀⽅向起飞,3/4处,C同已经空油箱的A平质S嘤⼟浚 盉从机场起飞,AC到7/8处同B平分剩余油量,刚好3架飞机同时返航。
微软经典面试题
微软经典面试题
1、如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?(40秒-3分钟)
2、一个岔路口分别通向诚实国和说谎国。
来了两个人,已知一个是诚实国的,另一个是说谎国的。
诚实国永远说实话,说谎国永远说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?(20秒-2分钟)
3、烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢(1分钟)
4、你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?(5秒-1分钟)
5、在9个点上画10条直线,要求每条直线上至少有三个点?(3分钟-20分钟)
6、在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?(5分钟-15分钟)
7、12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5分钟-1小时)。
微软面试智力题及答案
微软面试智力题及答案1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定半小时的时间呢?2.10个海盗抢到了100颗宝石,每一颗都一样大小且价值连城。
他们决定这么分:(1)抽签决定自己的号码(1~10);(2)首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼;(3)如果1号死后,再由2号提出分配方案,然后剩下的4个人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼;(4)依此类推……条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?3.为什么下水道的盖子是圆的?4.中国有多少辆汽车?5.你让工人为你工作7天,回报是一根金条,这根金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。
如果只允许你两次把金条弄断,你如何给你的工人付费?6.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车以每小时20公里的速度从广州开往北京。
如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。
请问,这只鸟共飞行了多长的距离?7.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子,随机选出一个弹球放入罐子,怎样给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少?8.想像你站在镜子前,请问,为什么镜子中的影像可以左右颠倒,却不能上下颠倒呢?9.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?10.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少次就可以确定你肯定有两个同一颜色的果冻?11.连续整数之和为1000的共有几组?12.从同一地点出发的相同型号的飞机,可是每架飞机装满油只能绕地球飞半周,飞机之间可以加油,加完油的飞机必须回到起点。
十大微软最难面试题
十大微软最难面试题Microsoft 面试的难题是许多求职者在进入这家科技巨头面试时面临的挑战。
这些难题旨在考察应聘者的技术能力、解决问题的能力和创造性思维。
本文将介绍微软十大最难的面试题,展示这些问题的难度和解决思路。
1. 排序光标移动:在一维数组中,给定一个初始位置和一组操作指令(如L代表向左移动,R代表向右移动),求最终光标停留的位置。
解决思路:使用一个变量来记录当前光标位置,根据指令对其进行移动操作即可。
2. 判断回文字符串:给定一个字符串,判断它是否是回文(正读和倒读相同)。
解决思路:使用双指针法,一个指针从字符串的开头向后移动,另一个指针从字符串的结尾向前移动,比较对应位置的字符是否相同。
3. 统计岛屿数量:给定一个由0和1组成的二维矩阵,其中1代表岛屿,0代表海洋,求岛屿的数量。
解决思路:使用深度优先搜索(DFS)或广度优先搜索(BFS)算法,遍历矩阵的每个元素,当遇到岛屿时,将其周围的岛屿标记为已访问,统计岛屿的数量。
4. 实现LRU缓存:设计一个基于最近最少使用(Least Recently Used)策略的缓存数据结构,使得当缓存已满时,能够移除最久未使用的数据。
解决思路:使用哈希表和双向链表结合的数据结构来实现LRU缓存,哈希表用于快速查找数据,双向链表用于维护数据的使用顺序。
5. 二叉树的最近公共祖先:给定一个二叉树和两个节点,找到它们的最近公共祖先。
解决思路:使用递归的方式,从根节点开始向下遍历二叉树,当遇到节点p 或节点q时,返回该节点;如果左子树返回非空,右子树返回非空,则说明p和q分别在左子树和右子树中,最近公共祖先为当前节点。
6. 链表的倒数第k个节点:给定一个链表,找到倒数第k个节点。
解决思路:使用快慢指针的方式,让快指针先移动k个节点,然后快慢指针一起向后移动,直到快指针到达链表末尾,慢指针指向的即为倒数第k 个节点。
7. 判断二叉树是否平衡:给定一个二叉树,判断它是否是平衡二叉树(左右子树的高度差不超过1)。
微软面试问题及答案
微软面试问题及答案著名的微软题:一到十楼每层电梯口都放颗大小不一的钻石。
你乘电梯从一到十楼,每层电梯门会开一次,并且你只能拿一次钻石。
请问你如何能拿到最大的一颗?如果你没有做个这个题目的话,也可以用几分钟思考一下,别着急往下看。
1、随便拿一颗,反正在我心里是最大的就好。
其他的管他呢。
(好自我的答复)2、电梯先走到10层,之前一次都不拿,然后从10层出来,记住最大的那颗,走下去,去拿就可以了。
(我不能说这个答复错了,也算一种方法吧,不过......)3、从第一层就开始拿,每到一层就比拟一下,如果比手里的小就过,如果大就用手里的这颗替换掉一直到第十层。
(这个完全忽略了只能拿一次的那个条件)4、就拿第一颗,我认为它是最大的,它就是,不再去看其他的。
节约时间,防止被其他人拿走所有,我一颗都没有。
(用这种思路去炒股多好)5、进什么微软?为什么不从一楼走上去,把所有的都拿走?(能说这是强盗逻辑吗?)6、找9个人一起,就算是10个面试者一起合作,每人看一个楼层,联系比照出一个最大的。
(这个答案很有团队精神)7、前三层一律不拿,心理大致测算平均大小和方差;第四到第六层里面,假设有非常显著大的就拿,如果没有,继续大致测算平均大小和方差;第7到第10层,根据前两组平均大小和方差估算一个可能最大水平,拿近似此水平的钻石。
(这个好赞,好缜密的逻辑和算法)8、叫上九个兄弟一人拿一颗不就完了吗?(兄弟多就是好)9、答案就是第十楼的,因为微软要发布wndows 10了,当然在第十楼。
(这个有想象力)10、说说我的想法,把前九层的钻石碾碎,最后第十层最大。
(这个网友的答案还有其他网友评论:请问要用什么每天携带的物品才能把钻石碾碎呢?)各种答案好多!看完大家所有的评论,我需要静静!其实答案是:前四层不动手,从第5层开始只要发现有大于前四层的钻石就拿。
这就是著名的【37%法那么】拒人问题数学模型。
这题没有百分百拿到最大钻石的方法,主要考察面试者的思维逻辑。
微软面试题总结版
"xxx领导:您好!我馆近期将展出一批珍贵文物,让更多的人能够真正的体会到中华民族文明的悠久、灿烂。我们希望能将您所拥有的明代的城砖展出。并且我们将在博物馆内设置专栏,宣传您对中华民族悠久文化的保存所作出的巨大贡献,让更多的华夏子孙看到,并且亲身体验到华夏文明的悠久历史,从而加强中华民族的凝聚力!"
五.主观题(说明:在以后的工作过程中,我们可定会犯这样那样的错误。既然错误已经酿成,损失在所难免,我们只能想办法把损失减少到最小。如果能巧妙地回答出这些问题,再发生错误的情况下。能让客户有最少的抱怨,公司有最少的损失。)
1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半(不是冲放电时间),解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解决方案。
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大?
2 . 一道关于飞机加油的问题,已知:
每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,
问题:
为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
说明:
1、飞机1、飞机2等飞机n为飞机的个数
2、把整个圆(飞行轨道)周等分为8份,分别定为O点(起飞点),依次为A、B、C、D、E、F、G
设想一下,按题目要求一架飞机要想不加油安全的飞并且安全返回,能飞行最远距离是一个圆周的1/4,既飞行度距离是OB;如果给另外一架飞机加油的话它只能飞行1/8的距离OA。这些前提的存在,再根据题意就可推出如下的飞行放案:
微软面试提问问题
第一组1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4.一个岔路口分别通向诚实国和说谎国。
来了两个人,已知一个是诚实国的,另一个是说谎国的。
诚实国永远说实话,说谎国永远说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6.在9个点上画10条直线,要求每条直线上至少有三个点?7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8.怎么样种植4棵树木,使其中任意两棵树的距离相等?第二组1.为什么下水道的盖子是圆的?2.中国有多少辆汽车?3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5.多少个加油站才能满足中国的所有汽车?6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8.你怎样将Excel的用法解释给你的奶奶听?9.你怎样重新改进和设计一个ATM银行自动取款机?10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?第三组1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。
微软经典面试题
微软经典面试题1、你让工人为你工作7天,给工人的回报是一根金条。
金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?答案:分成1 2 4day1 给1 段,day2 让工人把1 段归还给2 段,day3 给1 段,day4 归还12 段,给4 段,day5 依次类推……2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。
答案:面对这样的怪题,有些应聘者绞尽脑汁也无法分成;而有些应聘者却感到此题实际很简单,把切成的8份蛋糕先拿出7份分给7人,剩下的1份连蛋糕盒一起分给第8个人。
3、一群人开舞会,每人头上都戴着一顶帽子。
帽子只有黑白两种,黑的至少有一顶。
每个人都能看到其他人帽子的颜色,却看不到自己的。
主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。
第一次关灯,没有声音。
于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。
一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。
问有多少人戴着黑帽子?答案:3人。
假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子,于是也会有耳光声响起;可事实是第三次才响起了耳光声,说明全场不止两顶黑帽,依此类推,应该是关了几次灯,有几顶黑帽。
4、请估算一下CNTOWER电视塔的质量。
答案:比如你怎样快速估算支架和柱子的高度、球的半径,算出各部分的体积等等,题目只是手段,不是目的,最终得到一个结果固然是需要的,但更重要的是对考生得出这个结果的过程也就是方法的考察。
Mr Miller举例说明了一种比较合理的答法,他首先在纸上画出了CN TOWER的草图,然后快速估算支架和各柱的高度,以及球的半径,算出各部分体积,然后和各部分密度运算,最后相加得出一个结果。
经典的微软面试题目及参考答案
经典的微软面试题目及参考答案经典的面试题目是微软求职者求职面试成功的开路先锋,对面试题目的回答直接影响微软求职者的面试成败。
下面是店铺为大家精心推荐的经典的微软面试题,希望能够对您有所帮助。
经典的微软面试题(一)1、烧一根不均匀的绳,从头烧到尾总共需要1个小时。
现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2、你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。
抓取多少个就可以确定你肯定有两个同一颜色的果冻?3、如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4、一个岔路口分别通向诚实国和说谎国。
来了两个人,已知一个是诚实国的,另一个是说谎国的。
诚实国永远说实话,说谎国永远说谎话。
现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。
请问应该怎么问?5、12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6、在9个点上画10条直线,要求每条直线上至少有三个点?7、在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8、怎么样种植4棵树木,使其中任意两棵树的距离相等?经典的微软面试题(二)1、为什么下水道的盖子是圆的?2、中国有多少辆汽车?3、将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4、如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5、多少个加油站才能满足中国的所有汽车?6、想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7、为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8、你怎样将Excel的用法解释给你的奶奶听?9、你怎样重新改进和设计一个ATM银行自动取款机?10、如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11、如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12、如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13、如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?经典的微软面试题(三)1、你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。
微软面试题13道题目(3篇)
第1篇一、最基本题型1. 题目:从1到100有多少个9?解答思路:这个问题考察的是对数字的敏感度和基本的数学运算能力。
从1到100的数字中,个位和十位上都会出现9,但要注意100这个数字本身不算在内。
我们可以分别计算个位和十位上出现9的次数,然后将两者相加。
解答过程:- 个位上出现9的次数:9, 19, 29, 39, 49, 59, 69, 79, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,共18次。
- 十位上出现9的次数:90, 91, 92, 93, 94, 95, 96, 97, 98, 99,共10次。
- 总计:18 + 10 = 28次。
2. 题目:连续整数之和为1000的共有几组?解答思路:这个问题需要我们找出所有可能的连续整数序列,它们的和为1000。
可以通过试错法或者数学公式来解决这个问题。
解答过程:- 通过试错法,我们可以找到以下几组连续整数序列:- 1 + 2 + 3 + ... + 33 = 1000- 2 + 3 + 4 + ... + 34 = 1000- 3 + 4 + 5 + ... + 35 = 1000- ...(以此类推)- 总计:共有33组连续整数序列的和为1000。
二、逻辑推理题3. 题目:一个人从一座桥的一端出发,到另一端需要17分钟。
一次最多可以带一个人过桥,过桥时必须持有手电筒。
四个人过桥,他们的过桥速度分别是1分钟、2分钟、5分钟和10分钟。
如何安排他们的过桥顺序,使得总用时最短?解答思路:这个问题考察的是对时间管理能力的理解和优化策略的制定。
解答过程:- 首先,最慢的三个人(速度为10分钟、5分钟和2分钟)一起过桥,用时2分钟。
- 然后,速度为2分钟的人回来,用时2分钟。
- 接着,速度为1分钟的人过桥,用时1分钟。
- 最后,速度为10分钟和5分钟的人一起过桥,用时5分钟。
- 总用时:2 + 2 + 1 + 5 = 10分钟。
微软经典面试题(附答案)(1)
微软经典面试题(附答案)(1)微软经典面试题名牌有名牌的理由,就连招聘也与众不同。
微软公司的招聘一向都是人们议论的话题,说它百般刁难的有之,说它独出机杼的有之。
在这里笔者试着把微软在招聘过程中所用过的几则试题拿出来让大家发表意见,看看这些考题究竟想考察应聘者什么样的素质。
一般来说,微软的面试问题分为4类:谜语类试题、数学型试题、智力性试题、应用程序类试题。
先举两个谜语类试题:1、美国有多少辆汽车2、将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁小张:这两道试题并不难,我想他可能只是想考察一下应聘者的应变能力,亦即在短时间内快速应对不规范问题的能力。
孙先生:很明显,这是两道答案开放的试题。
我想它是为了考察应聘者能否对一个问题进行符合逻辑的创造性的思考,并迅速通过这种思考寻求到解决问题的办法。
至于答案,发问者显然并不关心。
裘副教授:问题是开放性的,但指向性也很明显。
应聘者是否能在很短的时间对出其不意的问题作出反应,并能够有逻辑地回答这样的问题,发问者同样希望能够得到出其不意的答案。
有不少人通过在网上搜集这种试题来准备答案,显然大违发问者的本意。
重复的答案都不是好答案。
下面是两道数学型的试题:1、1000有几位数,为什么2、编一个程序求质数的和,例如F7=1+3+5+7+11+13+17=58。
小陆:数学试题与应用程序试题是微软面试中指向性最明显的一类试题。
这些试题就是考察应聘者的数学能力与计算机能力。
师女士:微软是一家电脑软件公司,当然要求其员工有一定的计算机和数学能力,面试中自然就会考察这类能力。
微软的上述面试题目就考察了应聘人员对基础知识的掌握程度、对基础知识的应用能力,甚至暗含了对计算机基本原理的考察。
所以,这样的面试题目的确很“毒辣”,足以筛选到合适的人。
下面是智力题:1、烧一根不均匀的绳需用一个小时,如何用它来判断半个小时小何:我觉得我很难理解微软这一部分的试题,我大多数时候并不知道他考察我什么,有时候我甚至觉得它仅仅是脑筋急转弯。
微软四道经典算法面试题(附思路)
微软四道经典算法面试题(附思路)1.比较经典的四个算法题,目前只收集到相关的思路和个别题目的解法,不断更新中2. 1.一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。
0是例外,可以反复出现。
3.请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。
4.注意:5.- 5个数值允许是乱序的。
比如: 8 7 5 0 66.- 0可以通配任意数值。
比如:8 7 5 0 6 中的0可以通配成9或者47.- 0可以多次出现。
8.- 复杂度如果是O(n2)则不得分。
9. 2.设计一个算法,找出二叉树上任意两个结点的最近共同父结点。
10.复杂度如果是O(n2)则不得分。
11.3.一棵排序二叉树,令 f=(最大值最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。
12.复杂度如果是O(n2)则不得分。
13.4.一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。
设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N 1。
14.复杂度最好是O(n),如果是O(n2)则不得分。
15.思路分析16.1.非0最大-非0最小 1 <=5 ==> 非0最大-非0最小 <=417.2.如果每个节点包含父亲指针,把两个节点到根的路径都记录下来,两条路径的最后面的元素肯定相同,18.从两条路径的最后一个元素向前比较,直到第一次出现分叉为止,就可以找到最近节点。
复杂度为O(n),19.路径最长可能是n20.如果不包含父亲节点,那就先前序遍历二叉树,遍历的时候可以像哈夫曼树那样左右01编号,21.记录给定两节点的到达路径,最后比较两个0,1序列的前面位数,直到出现不相等为止,就找到最近父节点,22.复杂度也是O(n)23.3.找出最大值,最小值,复杂度都是O(h),然后搜索f,可以找到f应该插入的位置,复杂度也是O(h),24.再找f的后继,复杂度也是O(h),h最大可能是n,所以总体最坏情况复杂度就是O(n)25.4.先排序,复杂度O(nlgn),然后用两个指示器(front和back)分别指向第一个和最后一个元素,如果26.A[front] A[back]>N 1,则back–;27.如果A[front] A[back]=N 1,则计数器加1,back–,同时front ;28.如果A[front] A[back] 重复上述步骤,O(n)时间找到所有数对,总体复杂度为O(nlgn)29.题目分析30.第1题:首先扫描一遍求出非0平均值,然后再扫描一遍即可判断,复杂度:O(n)31.第2题,是一个送分题,可以设计一个相当巧妙的数据结构,其复杂度为O(n)32.第3题,也是送分题,扫描几次即可33.第4题,送分题。
四道微软面试算法题
四道微软面试算法题四道微软面试算法题(1)一个整数数列,元素取值可能是0—中的任意一个数,相同数值不会重复出现。
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)则不得分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微软四道经典算法面试题(附思路)
1.比较经典的四个算法题,目前只收集到相关的思路和个别题目的解法,不断更新中
2. 1.一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出
现。
0是例外,可以反复出现。
3.请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相
邻。
4.注意:
5.- 5个数值允许是乱序的。
比如: 8 7 5 0 6
6.- 0可以通配任意数值。
比如:8 7 5 0 6 中的0可以通配成9或者4
7.- 0可以多次出现。
8.- 复杂度如果是O(n2)则不得分。
9. 2.设计一个算法,找出二叉树上任意两个结点的最近共同父结点。
10.复杂度如果是O(n2)则不得分。
11.3.一棵排序二叉树,令 f=(最大值最小值)/2,设计一个算法,找出距离f值最近、
大于f值的结点。
12.复杂度如果是O(n2)则不得分。
13.4.一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,
相同数值不会重复出现。
设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N 1。
14.复杂度最好是O(n),如果是O(n2)则不得分。
15.思路分析
16.1.非0最大-非0最小 1 <=5 ==> 非0最大-非0最小 <=4
17.2.如果每个节点包含父亲指针,把两个节点到根的路径都记录下来,两条路径的最
后面的元素肯定相同,
18.从两条路径的最后一个元素向前比较,直到第一次出现分叉为止,就可以找到最近
节点。
复杂度为O(n),
19.路径最长可能是n
20.如果不包含父亲节点,那就先前序遍历二叉树,遍历的时候可以像哈夫曼树那样左
右01编号,
21.记录给定两节点的到达路径,最后比较两个0,1序列的前面位数,直到出现不相等
为止,就找到最近父节点,
22.复杂度也是O(n)
23.3.找出最大值,最小值,复杂度都是O(h),然后搜索f,可以找到f应该插入的
位置,复杂度也是O(h),
24.再找f的后继,复杂度也是O(h),h最大可能是n,所以总体最坏情况复杂度就
是O(n)
25.4.先排序,复杂度O(nlgn),然后用两个指示器(front和back)分别指向第一
个和最后一个元素,如果
26.A[front] A[back]>N 1,则back–;
27.如果A[front] A[back]=N 1,则计数器加1,back–,同时front ;
28.如果A[front] A[back] 重复上述步骤,O(n)时间找到所有数对,总体复杂度
为O(nlgn)
29.题目分析
30.第1题:首先扫描一遍求出非0平均值,然后再扫描一遍即可判断,复杂度:O(n)
31.第2题,是一个送分题,可以设计一个相当巧妙的数据结构,其复杂度为O(n)
32.第3题,也是送分题,扫描几次即可
33.第4题,送分题。
牺牲空间即可完成。
34.具体算法
35.1.思路是非0最大值-非0最小值 <=数组长度-1
36.我觉得这道题的前提非常重要
37.p ublic boolean isContiguous(int[] array)
38. {
39. int min=-1;
40. int max=-1;
41. for(int i=0;i <array.length;i )
42. {
43. if(array!=0)
44. {
45. if(min==-1||min>array)
46. {
47. min=array;
48. }
49. if(max==-1||max <array)
50. {
51. max=array;
52. }
53. }
54. }
55. return max-min <=array.length-1;
56. }
57.4.关键点在于创建一个Hash表,典型的以空间换时间:-)
58. public static int getSumCount(int[] array,int N)
59. {
60. int count=0;
61. //创建哈希表
62. int[] hashTable=new int[N 1];
63. for(int i=0;i <array.length;i )
64. {
65. hashTable[array]=array;
66. }
67. for(int i=0;i <array.length;i )
68. {
69. //如果是数对中较小的整数(防止重复计数)
70. //并且配对的整数存在
71. //并且不等于与之配对的整数,因数列不存在重复整数
72. if(array <=(N 1)/2&&hashTable[N 1-array]!=0&&arra
y*2!=N 1)
73. {
74. count ;
75. }
76. }
77. return count;
78. }。