欢迎关注,敬请点赞!
大海捞针——找出不重复整数
海量数据时代,不是谁都可以一口闷。
题目:在2.5亿个整数中,找出不重复的整数(注,内存不足以容纳这2.5亿个整数)。
构建测试数据
# 构建一个测试数据集:随机生成10000个(-20000, 20000)的整数,以字符串格式存入bigdata中
import random
for i in range(10000):
with open('bigdata', 'a') as file:
file.write(str(random.randint(-20000, 20000)) + '\n')
方法一(内存充足):用python字典结构:
返回顶部
在内存充足的情况下,使用python中的字典结构。
对2.5亿个数中的每一个数,出现一次,字典对应的值+1。
最后遍历字典,找出value为1的所有key。
int_dict = {
} # 整数字典,整数为key,次数为value
def dict_int():
with open('bigdata') as file