我想找到数组中每个数组元素的交点并取交点。
输入是数组数组,例如“'list_arrays',如下面脚本中提到的”“过滤器”是需要对观察到的交叉点的总长度应用的限制输出预期为这样的数组“[[2 ,4]]"
list_arrays = [[1, 2, 3, 4], [2, 5, 6], [1, 5, 8], [8, 2, 4]]
filter = 2
first_element_array = Array.new
list_arrays.each_with_index do |each_array1, index1|
list_arrays.each_with_index do |each_array2, index2|
unless index1 < index2
intersection = each_array1 & each_array2
if intersection.length == filter.to_i
first_element_array.push(intersection)
end
end
end
end
puts first_element_array
上述过程需要很长时间,因为我的数组数组太长(以百万行为单位)。我需要一种简单的 rubistic 方法来处理这个问题。有人对此有任何简单的想法吗?