【发布时间】:2023-03-14 15:15:02
【问题描述】:
我想在一个数组中找到每个数组元素的交点并取交点。
输入是数组数组,例如“'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 方法来处理这个问题。有人对此有什么简单的想法吗?
【问题讨论】:
-
用一个代码(尤其是当它不是一个好的代码)来代替表达你想要的东西是不好的。直接写你想要的。
filter = 2是什么? -
另外,给出输入/输出的例子。这个问题很不清楚。
-
此问题中添加了更多信息。感谢您的通知。
-
@PalaniKannan 我看到你编辑了这个问题,但没有太大区别。目前还很不清楚。你真的认为任何人都会理解你所说的
restriction on intersection elements的意思吗? -
好的。我编辑了更多信息。我在这里制作完美问题内容的经验较少。您的信息很有价值,我试图改进它。但是,对于像我这样的初学者来说,否决投票是令人沮丧的......无论如何,感谢您的信息:)。
标签: ruby arrays foreach each intersection