面试算法题
来源:互联网 发布:mac装win10鼠标不能用 编辑:程序博客网 时间:2024/06/05 03:29
前几天,一好友去笔试,有一题:现在有1000个苹果,和10个箱子,如何把这1000个苹果装在这10个箱子里,才能使不管任何数量(1-1000)的苹果,都能一次给出?
当时,我们都想,出题这人。。。
今天,在想移位的时候,突然想到了,这绝对是二进制数的变种。
分析:
1000个苹果,最接近1024,转化为2进制,需要占用10个bit,则从右往左数,第一个bit位表示1个苹果,第二个bit位表示2个苹果,第三个bit位表示4个苹果,,,第10个bit位表示488个苹果(512-24)。分别把这些通过放入相同编号的箱子里。当需要某一数量的苹果时,查看这些数量的哪些bit位为1,为1则表示这个bit位代表有苹果,取出对应编号的箱子即可。
又想起了前几天看到的笔试题:
有8瓶液体,其中一瓶是毒药,毒性可使小白鼠饮用后在20小时内阵亡,需要几只小白鼠才能在20小时内判断哪一瓶是毒药?
分析:
给8瓶毒药编码:
第一瓶:000
第二瓶:001
第三瓶:010
第四瓶:011
第五瓶:100
第六平:101
第七平:110
第八平:111
只需3只小老鼠
第一只老鼠喝最后bit位为1的,即第2,4,6,8瓶
第二只老鼠喝中间bit位为1的,即第3,4,7,8瓶
第三只老鼠喝第一bit位为1的,即第5,6,7,8瓶
如果20小时候,没有老鼠死亡,则第一瓶有毒,否则:
假设第二只和第三只老鼠死亡,把对应位上bit设为1,即110,所以第7瓶有毒。
0 0
- 面试算法题1
- 面试算法题
- 面试算法题2
- 面试算法题3
- 面试算法题4
- 面试算法题5
- 面试算法题6
- 转:面试算法题
- 面试算法题!
- 面试算法题1
- 面试算法题
- 面试算法题
- 微软面试算法题
- java面试算法题
- 数组面试算法题
- 面试算法题整理
- 某个面试算法题
- 面试算法题
- libsvm工具箱C++下编程实践2
- IO流 【java笔记】
- const修饰的类成员函数
- Android Browser学习三 多窗口: 展示第一个Tab的过程
- iOS开发 导航栏 UINavigationBar 属性
- 面试算法题
- Android Design - 设计风格
- POJ 2240:Arbitrage:folyd最短路算法变形求有向图的盈利环存在
- third_party/
- 优秀开源项目网站分享
- POJ 1017 Packets (贪心)
- (*(volatile unsigned int *))详解-数值常量如何转化为内存地址_转阿拉丁神丢新浪博
- spring mvc 给action添加事务不成功的原因
- 从四大维度看O2O与传统电商的不同 作者: 黄渊普