快速检查数组是否相交

时间:2017-06-05 12:19:40

标签: ruby

我想检查两个数组ab是否相交。鉴于a = [3, 21]b = [15, 26530, 21, 3],答案应为true。特定 如果a = [3, 21]b = [15, 26530],答案应为false

我试过了:

a.to_set.intersect?(b.to_set)

但这种方法需要很长时间。我怎么能快点做到?

2 个答案:

答案 0 :(得分:3)

试试这个。

(a & b).any?

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

答案 1 :(得分:0)

您也可以使用

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

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