40亿个非负整数中找到出现两次的数和所有数的中位数
32位无符号整数的范围是0 ~ 4 294 967 295 现在有40亿个无符号整数,可以使用最多1GB的内存,找出所有出现了两次的数。 补充问题: 可以使用最多10MB的内存,怎么找到40亿个整数的中位数? 原问题: 可以用 bit map 来表示数出现的情况。 申请一个长度为 4 294 967 295 × 2 的bit类型的数组bitArr,1B占用8 个bit,所以长度为 4 294 967 295 × 2 的bit类型的数组占用1GB空间, 用2个位置表示一个数出现的词频。 怎么使用bitArr数组?遍历这40亿个无符号数。 1 如果第一次遇到num,就把 bitArr[num2]
用户评论