avatar
来讨教个面试题# JobHunting - 待字闺中
l*r
1
有3个超大的数组A,B,C,例如每个数组都1T的数据量而且没有排序,要求找出所有的
(i,j,k) 满足条件A[i]+B[j]+c[k]=1000
这个改怎么做最优?
avatar
d*b
2
1000太小,1T太大,所以只要 有三组 1000个桶。然后计数,剩下的就是排列组合问题
了。
avatar
l*r
3
A,B也外排一下
然后binary search?

【在 d******b 的大作中提到】
: 1000太小,1T太大,所以只要 有三组 1000个桶。然后计数,剩下的就是排列组合问题
: 了。

avatar
o*r
4
1T的数字?我觉得可以先去一下重复的,去重复的时候顺便桶排序一下变成一个数出现
多少次。之后要处理的
就很少了。

【在 l*********r 的大作中提到】
: 有3个超大的数组A,B,C,例如每个数组都1T的数据量而且没有排序,要求找出所有的
: (i,j,k) 满足条件A[i]+B[j]+c[k]=1000
: 这个改怎么做最优?

avatar
z*n
5
条件太少了,数据类型是什么?short,integer, long(long), 这个不同,方法自
然不同。
avatar
l*r
6
都是int类型

【在 z*********n 的大作中提到】
: 条件太少了,数据类型是什么?short,integer, long(long), 这个不同,方法自
: 然不同。

avatar
p*r
7
这就是个3sum题,
你不用管它大不大,多少T
既然没排序,扫描一遍是跑不掉的。
优化方面可以考虑的是:
#1 先扫描一遍:把的值先排除
#2 去重
然后排序

【在 l*********r 的大作中提到】
: 有3个超大的数组A,B,C,例如每个数组都1T的数据量而且没有排序,要求找出所有的
: (i,j,k) 满足条件A[i]+B[j]+c[k]=1000
: 这个改怎么做最优?

avatar
z*n
8

int32?
那简单了,不用排序,直接建个表查表就行了,也就1G额外空间--处理3T数据,开了1G
空间,怎么说都不过份吧?
int32也就只能表示4G个unique的数,一个数据集直接开4G bit(500M bytes)的空间
,扫一遍,用第i bit表示i+INT_MIN这个int在数据集中存在与否。也就是用500M空间
表示了1T数据,而且还能O(1)时间查询一个整数存在与否。
懒得继续码字了,这个字典都给建好了,剩下的该怎么做应该不用多废话了吧。

【在 l*********r 的大作中提到】
: 都是int类型
avatar
l*r
9
double 咋整?

1G

【在 z*********n 的大作中提到】
:
: int32?
: 那简单了,不用排序,直接建个表查表就行了,也就1G额外空间--处理3T数据,开了1G
: 空间,怎么说都不过份吧?
: int32也就只能表示4G个unique的数,一个数据集直接开4G bit(500M bytes)的空间
: ,扫一遍,用第i bit表示i+INT_MIN这个int在数据集中存在与否。也就是用500M空间
: 表示了1T数据,而且还能O(1)时间查询一个整数存在与否。
: 懒得继续码字了,这个字典都给建好了,剩下的该怎么做应该不用多废话了吧。

avatar
z*n
10

我是不是提前先问你这是啥数据类型了?
是不是说了不同类型手法不一样。
然后你告诉我是int
我码了七行字解了后你啥别的不说只回仨字“double咋整”?
自己琢磨吧。

【在 l*********r 的大作中提到】
: double 咋整?
:
: 1G

avatar
H*5
11
非double和double难度完全不是一个数量级,可以另外开一贴


: double 咋整?

: 1G



【在 l*********r 的大作中提到】
: double 咋整?
:
: 1G

avatar
c*t
12
bitmap怎么处理重复数据?

1G

【在 z*********n 的大作中提到】
:
: 我是不是提前先问你这是啥数据类型了?
: 是不是说了不同类型手法不一样。
: 然后你告诉我是int
: 我码了七行字解了后你啥别的不说只回仨字“double咋整”?
: 自己琢磨吧。

avatar
z*n
13

天然去重啊?还需要如何处理。

【在 c********t 的大作中提到】
: bitmap怎么处理重复数据?
:
: 1G

avatar
l*r
14
大牛,失礼失礼...
还在消化你的解法。。。

【在 z*********n 的大作中提到】
:
: 天然去重啊?还需要如何处理。

avatar
c*t
15
题目要求找出所有的(i,j,k) 满足条件A[i]+B[j]+c[k]=1000

【在 z*********n 的大作中提到】
:
: 天然去重啊?还需要如何处理。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。