面试题打卡-------智力题

经典智力题

开始进入面试期每天坚持打卡做面试题

1.切香问题

假如有两注不均匀的香,每柱燃烧完要1小时,怎样用两柱香切15分钟

这个题很经典,注意要点是都能烧一个小时,但是很不均匀,不均匀但是两根香是一样长的且一样的。但是15分钟正好是一个小时的四份之一,所以就是一个突破口。分为以下三步

  • 先点一根香的两端,烧完后,再烧尽的地方在另一香上做标记,并在标记处将香折断。
  • 同样,在将一折断的香用上次的方法标记;折断。
  • 每一小段都能测15分钟。

2.喝啤酒问题

假如在啤酒店里,如果三个空瓶子可以换一个啤机,那么买十瓶啤酒,到最后可以最多喝几瓶啤酒。

这个很简单也很有意思,十个瓶子也很好算,但是难点最后空瓶子的处理,总会有剩下的啤酒瓶。不够换的,所以试着变通一点的思路去思考问题

  • 首先,现将10瓶啤酒喝完,就有10个空瓶子,num = 10
  • 再讲10个空瓶子换成啤酒喝掉,就剩下4个空瓶子 。num = 10+ 3
  • 再讲剩下的空瓶子换成啤酒喝掉,就剩下2个空瓶子。num = 10 +3 +1
  • 最后问老板借一个瓶子正好三个空瓶子换一个啤酒,然后喝掉之后,再把喝掉的这个空瓶子还给老板。正好手里没有空瓶子了。num = 10 + 3 +1 +1

3.用老鼠测毒药的问题

如果说在1000个瓶子中有一个是有毒药的,老鼠喝下毒药后半个小时才会死,问怎么用最少的老鼠和时间测出毒药是哪一瓶?

这个问题看似难以下手,但是要利用喝毒药不一定是全喝,每个老鼠可以每瓶喝一点那种去尝试,如果不计较时间和老鼠的数量,首先想到的就是二分法,先找两个老鼠一个喝前一半,另外一个喝后一半,谁死了就证明是在前一半还是后一半,继续二分,直到找出老鼠,但是太费时间,如果做最坏的打算就要死10只老鼠,用时5小时。
所以使用另一种二进制标记寻找法

  • 首先,把1000个瓶子按顺序都用二进制数进行表示,因为有1000个瓶子,所以用二进制表示,应该最多是十位。所以每个瓶子都有相应的二进制数。且都用十位表示,不够十位的前边补零。
  • 找10只老鼠,每只老鼠对应一一位二进制数,比如,第一个老鼠就喝首位数字为1的瓶子的液体。第二个老鼠喝第二位数字为1的瓶子,以此类推,
  • 就看那只老鼠死掉,就是表示毒药的瓶子相应的位数的数字为一,否则为0,最后把二进制数化为十进制数,就可以知道哪个瓶子有毒药。

这个题主要就是,当老鼠喝下液体的时候只有两种状态,要么生存,要么死亡,刚好对应了二进制数中的0和1。算下来时间肯定是最少的帮小时,因为最多1000个瓶子,不到1023,没有10个1的情况。所以就是最多死9只老鼠。

4.天平称量问题

假如有一架天平,有8个球,其中有一个球的重量比其余七个重量重,请问需要称几次才能称出偏重的那一个球?

这个题也是很偏向二分法,一半一半的称,你可能会陷入这个怪坑。一直二分,回答三次。恰好就错了。正因为是天平,所以就可以同时测两边的重量。关键点就是剩下球的重量是一样的。

  • 这个题答案有妙解,看是3的几次方,就是几次。
  • 可以每次将球分成三份,拿出两份(这两份必须保证数量相等)放在天平上称量如果有相等,肯定在第三份中,如果不相等,肯定是重的一边。
  • 继续三分,可以续上。直到最后三个球也是天平两边各放一个,如果相等剩下的就是较重的那个
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值