65,207
社区成员
发帖
与我相关
我的任务
分享


)。
就是1M的限制,那么一些条件就要考虑起来。即2 ** 31 vs 100W大约是2148:1,所以这个分布是相当稀疏的,即有压缩的可能性(编码),那么可以设计一种编码,来充分利用bit状态,继而完成状态的计数(最原始的算法是有空间冗余的,算法简单易实现但空间利用不高)。
又或者可以划分问题,比如先算出两组中都出现的整数的个数,再算另外两组,然后结果再次合并;
再计算两组种都出现的整数的个数的时候,由于1M内存可以表示8388608个整数,可以先将小于8388608的整数中都出现的计数算出来,然后再算大于8388608小于8388608*2的计数;在这个过程中,原始的存100W的数的数组应该也是可以利用起来的。