のためではない共通の要素を探す:ルビー - そこに2つの配列があり、私はそれらの両方に共通ではない要素を見つける必要があり、例えば - 私は次のような問題について考えてきた二つの配列
a = [1,2,3,4]
b = [1,2,4]
そして、期待される答えは[3]
です。
これまでのところ、私はこのようにそれを行ってきた:
a.select { |elem| !b.include?(elem) }
しかし、それは私にO(N ** 2)
時間の複雑さを与えます。
a !& b #=> doesn't work of course
:また、私は2つの配列の共通要素)を与える
&
にいくつかの方法とは反対側を使用して(このように何とかそれを得ることについて考えてきた)
、私はそれがより迅速に行うことができると確信しています
もう一つの方法は、二つの配列を追加し、uniq
に似たいくつかの方法でユニークな要素を発見するかもしれないように:@iamnotmaynardがで述べたように
[1,1,2,2,3,4,4].some_method #=> would return 3
'( - 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