首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

淘宝面试题一个,等待答案解决方法

2012-04-07 
淘宝面试题一个,等待答案从 [1,1000] 这个集合中任意选取100个不重复的整数,将这100个数压缩到 N 个 bit

淘宝面试题一个,等待答案
从 [1,1000] 这个集合中任意选取100个不重复的整数,将这100个数压缩到 N 个 bit 位中存储,问:

1、N 的最小值是多少?
2、给出这个最小值对应的压缩存储算法。

原问如此,无更多信息,请勿追问。

[解决办法]
扫描,首比特肯定是标志位,如果为0,那么5比特之后又是一个标志位,如果为1,那么10比特之后又是一个标志位
[解决办法]

探讨

引用:

我用我那无脑的办法稳定压缩到674bits ...


能给详细讲讲嘛 ? 谢谢,恕愚钝

[解决办法]
学习了,呵呵
[解决办法]
不使用组合的方案,有一种简单可行的办法能将上限降到525位。
将1000分成125个分区,每个分区有8个数,用125位可以表示每个分区是否有数据。
由于分区大小为8,可以用3位表示区内的一个数,每个数要附加1位标识后面是否还有此分区的数,所以每个数的表示总共需要4位,100个数就是400位。

热点排行