你们在面试的时候,不免会遇到让人摸不着头脑的逻辑题,这类题目让同窗们每每连答案应该回答些什么都摸不清楚,只能和面试官四目相对,很是尴尬。git
其实,不少面试的考官,都是从题库随机挑选逻辑题来考验同窗们,面试官有时候本身也未必彻底摸透这类题目,因此面试的时候没必要过于紧张,就算答不出来啊也很是正常。程序员
在个人理解中,这类题目主要仍是考你们的思路,至于答案标准与否,其实不是特别重要。github
本文总结了面试中我本身面试中遇到的几道很是常见的逻辑题,你们能够做为面试前的突击复习材料。面试
此文属于Java后端知识点复习手册专栏内容算法
全复习手册文章导航:经过如下两种途径查看后端
18年秋招今日头条二面原题(by:Rude3Knife)设计模式
一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每一个人都能看到其它人帽子的颜色,却看不到本身的。主持人先让你们看看别人头上戴的是什么帽子,而后关灯,若是有人认为本身戴的是黑帽子,就打本身一个耳光。第一次关灯,没有声音。因而再开灯,你们再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?安全
三我的服务器
如果两我的,设A、B是黑帽子,第二次关灯就会有人打耳光。缘由是A看到B第一次没打耳光,就知道B也必定看到了有带黑帽子的人,可A除了知道B带黑帽子外,其余人都是白帽子,就可推出他本身是带黑帽子的人!同理B也是这么想的,这样第二次熄灯会有两个耳光的声音。微信
若是是三我的,A,B,C。A第一次没打耳光,由于他看到B,C都是带黑帽子的;并且假设本身带的是白帽子,这样只有BC戴的是黑帽子;按照只有两我的带黑帽子的推论,第二次应该有人打耳光;可第二次却没有...因而他知道B和C必定看到了除BC以外的其余人带了黑帽子,因而他知道BC看到的那我的必定是他,因此第三次有三我的打了本身一个耳光
N我的是黑帽子,就会在第N天,有N我的打本身一个耳光。
18年秋招网易测试开发一面原题(by:Rude3Knife)
一个是两种药片,每种有两个,一我的须要早上吃两种药片各一个,如今这四个药片混在一块儿了这我的什么方法吃。
把全部的4颗药丸都切开成相等的两半,而后早上和晚上,分别吃掉每颗药丸的一半
18年秋招网易测试开发一面原题(by:Rude3Knife)
一个5L,一个6L的瓶子,要获得3L的水,问什么方法
6-5=1 1L水放在5L那个瓶里面,而后再装6L水,往5L(里面已经有1L)里面倒,这样就会剩下2L水在6L里面,再把2L水放在5L里面,再装一次,不就能够6L那里处处3L水到5L里面,本身就剩下3L了
一共1000瓶酒,其中一瓶有毒。若是一只老鼠喝了有毒的酒,会在一天以后死亡,那么若是给你一天时间,然你断定哪瓶酒有毒,至少须要几只老鼠?
答案是10只。这个须要使用二进制编码来解决,1000瓶酒至少须要10位二进制数来进行编码。而后取十只杯子分别表明这是个二进制数的十个位,分别将1000瓶酒倒入其编码为1的对应的杯子中。取十个老鼠分别喝十个杯子中的酒,一天以后,就能够根据喝哪些杯子的老鼠死掉来肯定出有毒的那瓶酒的编码,从而肯定哪瓶酒有毒。其根据就是只有有毒酒的编码对应的毒死老鼠的杯子位置。这个题目就是利用了二进制编码的一些特性。
还有一些其余的题目也使用这些特性,好比使用特殊的位运算,通常使用比较多的位运算就是与、或和异或。 这样,就能够对应到现实生活中的一些为题,好比一个相似的问题本来咱们想须要用900多台服务器来解决,通过这样分析后就可使用10台服务器来解决,大大节约了成本。
再好比,国王有10000桶酒,已知一桶酒有毒,喝了以后必定会在23-24小时内死亡(例如0点喝,会在23-次日0点这个时间段死亡)。如今国王要在48小时后举办一个宴会,须要用罪犯实验,请问最少几个罪犯。(能够混合酒)
若是是常规利用二进制解题的话,那就须要14个犯人,2^14=16384>10000,可是这样一来死亡时间这个条件就用不到,也不是最优解。
应该利用酒死的时间是固定的,一个罪犯像上面那样能够表示成25种状态,三个罪犯就能够表示25 x 25 x25种状态,超过10000了,因此只须要三个罪犯。
有8个小球,其中七个的重量是相同的,有一个较轻。给你一个天平,问秤几回能找出那个较轻的小球,若天平只能秤两次,又该怎么秤
第一次两边各放随机三个,若是平了,则另一个是轻的,若不平,还有第二次,拿出那三个轻的,在两边随机放一个,就能测出哪一个最轻了。
18年秋招腾讯测试开发一面原题(by:蛮三刀把刀)
本体图解参考:
已知: 每一个飞机只有一个油箱,飞机之间能够相互加油(注意是相互,没有单独的加油机),一箱油可供一架飞机绕地球飞半圈
问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少须要出动几架飞机?(全部飞机从同一机场起飞,并且必须安全返回机场,不容许中途降落,中间没有飞机场)
分为3架飞机5架次和3架飞机6架次
1. 3架飞机6架次
(上图)ABC 3架同时起飞
(上图)1/8处,C给AB加满油,C返航。此时飞机的油量分别是:A: 3/4, B: 3/4, C: 3/4。此时C分别给A和B加满油,三架飞机当前油量分别是:A: 1, B: 1, C: 1/4。C返回机场。A、B继续向前飞行。
(上图)1/4处,B给A加满油,B返航,A到达1/2处,此时C已经返回机场,三家飞机此时油量分别是:A: 3/4, B: 3/4, C: 0。此时B给A加满油,C加满油,此时三架飞机的油量分别是:A: 1, B: 1/2, C: 1。而后B返回机场,A继续向前飞行。
(上图)当A飞行至半圈位置时,B已经返回机场而且加满了油(假设加油时间为0),此时,B和C沿逆时针方向飞行,三架飞机当前油量分别是:A: 1/2, B: 1, C: 1。A继续向前飞行。
(上图)当A飞行至另外半圈的1/4位置时,三架飞机剩余油量分别是:A: 1/4, B: 3/4, C: 3/4。此时,C给B加满油。此时三架飞机油量分别是:A: 1/4, B: 1, C: 1/2。C返回机场,B和A继续向前飞行。
当A飞行至另外半圈的1/2位置时,C已经返回机场,A和B相遇,此时三架飞机剩余油量分别是:A: 0, B: 3/4, C: 0。B给A加1/4的油,三架飞机剩余油量:A: 1/4, B: 1/2, C: 1。C加满油从机场逆时针飞出,B返回机场,A继续向前飞行。
(上图)当A飞行至另外半圈的3/4位置时,A和C相遇。此时三架飞机的油量分别是:A: 0, B: 1/4, C: 3/4。C给A加1/4的油,此时三架飞机的油量分别是:A: 1/4, B: 1/4, C: 1/2。C掉头返回机场,A和B继续向前飞行。
(上图)三架飞机顺利回到机场!
2. 3飞机5架次
(1)3 架飞机同时从机场出发,飞行八分之一周(A点),各耗油四分之一。此时某架飞机给其他两架补满油,本身返回基地;
(2)另外一架飞机和目标机结伴,飞至四分之一周(B点),给目标机补满油,本身返回;
(3)目标机独自飞行半周(C点);
(4)与从基地反向出发的一架飞机相遇,2 机将油平分,飞至最后八分之一处(D点);
(5)与从基地反向出发的另外一机相遇,各分四分之一油,返回。
75道程序员面试逻辑题和答案
全复习手册文章导航:经过如下两种途径查看
复习手册文章推荐
我目前是一名后端开发工程师。主要关注后端开发,数据安全,网络爬虫,物联网,边缘计算等方向。
微信:yangzd1102
Github:@qqxx6661
我的博客:
若是文章对你有帮助,不妨收藏起来并转发给您的朋友们~