2017-06-05 91 views
0

我想检查两个阵列ab是否相交。给定a = [3, 21]b = [15, 26530, 21, 3],答案应该是true。鉴于 如果a = [3, 21]b = [15, 26530],答案应该是false快速检查阵列是否相交

我想:

a.to_set.intersect?(b.to_set) 

但这种方法需要很长的时间。我怎样才能快速做到这一点?

+1

我不反对你授予对号@Ursus的回答,但为什么急于做出选择?快速选择可能会阻止其他答案,而且,对于那些仍在解答问题的人来说,他们是不尊重的。没有急于。今后请考虑等一会儿,然后再申请绿党。 –

回答

3

试试这个。

(a & b).any? 

无论如何,我认为设定的操作应该是最快的国家之一。问题是你必须转换你的阵列,也许他们很大。

+0

谢谢!这非常好 – Andy

+0

我的荣幸爵士;) – Ursus

+0

在5分钟内我会把答案标记为最好:)非常感谢你 – Andy

0

您还可以使用

[a-(a-b)].empty? 

[b-(b-a)].empty?