gpt4 book ai didi

ruby - 数组包含来自另一个数组的任何值?

转载 作者:数据小太阳 更新时间:2023-10-29 06:17:01 24 4
gpt4 key购买 nike

测试一个数组是否包含第二个数组中的任何元素的最有效方法是什么?

下面的两个例子,试图回答 foods 是否包含 cheeses 中的任何元素的问题:

cheeses = %w(chedder stilton brie mozzarella feta haloumi reblochon)
foods = %w(pizza feta foods bread biscuits yoghurt bacon)

puts cheeses.collect{|c| foods.include?(c)}.include?(true)

puts (cheeses - foods).size < cheeses.size

最佳答案

(cheeses & foods).empty?

正如 Marc-André Lafortune 在评论中所说,& 在线性时间内工作,而 any? + include? 将是二次的。对于更大的数据集,线性时间会更快。对于小型数据集,any? + include? 可能更快,如 Lee Jarvis 的回答所示——可能是因为 & 分配了一个新数组而另一种解决方案则没有,而是作为一个简单的嵌套循环来返回 bool 值。

关于ruby - 数组包含来自另一个数组的任何值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com