对于ruby,我尝试从第一个数组key [:nb]. value中查找第二个数组中是否有类似的对。
考虑以下数组包含数千个元素:
arr1 = [{"nb"=>"5df54g54df", "active"=>true, "brand"=>"aisle"},{"nb"=>"5jghfj264", "active"=>false, "brand"=>"leg"},{"nb"=>"5qwercv546", "active"=>true, "brand"=>"gem"}]
arr2 = [{"nb"=>"5df54g54df", "active"=>true, "brand"=>"aisle"},{"nb"=>"5jghfj264", "active"=>false, "brand"=>"leg"}]
到目前为止,我一直在想这样的事情:
第一个月
你有什么建议吗?
2条答案
按热度按时间3htmauhk1#
像这样的东西怎么样?请看下面的评论:
ppcbkaq52#
通过首先将
h["nb"]
、arr2
中的h
的值收集到一个集合中,arr2_nb_vals.include?(h["nb"])
的计算非常快,几乎与arr2_nb_vals.size
无关。这使得当用
arr2.include?(h["nb"])
替换arr2_nb_vals.include?(h["nb"])
时,与O(arr1.size**2)
相比,计算复杂度接近O(arr1.size + arr2.size)
。