我一直在思考如下問題 - 有兩個數組,我需要找到的元素並不常見他們兩個,例如:紅寶石 - 尋找元素不常見的兩個數組
a = [1,2,3,4]
b = [1,2,4]
預期的答案是[3]
。
到目前爲止,我一直在做這樣的:
a.select { |elem| !b.include?(elem) }
但它給了我O(N ** 2)
時間複雜度。我敢肯定,這是可以做到更快;)
而且,我一直在想獲得它在某種程度上是這樣的(使用一些方法相反&
這給2個陣列的共同要素):
a !& b #=> doesn't work of course
另一種方法可能是添加兩個數組,並找到類似uniq
一些方法的獨特元素,使:
[1,1,2,2,3,4,4].some_method #=> would return 3
'(A-B)| (ba)#=> [3]'見http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-2D並注意它不是可交換的,即通常'ab != ba' – iamnotmaynard
那應該是:(ab)| (b-a) –
@ShawnBalestracci你是對的。我甚至在我的測試控制檯中正確寫入了它,但將其重寫錯誤。 – iamnotmaynard