Ben şu sorunun düşünüyordum için yaygın değil elemanı bulun:Yakut - örneğin, orada iki diziler, ve ben ikisi için yaygın değildir unsurları bulmalıyız - İki dizinin
a = [1,2,3,4]
b = [1,2,4]
Ve beklenen cevap [3]
.
a.select { |elem| !b.include?(elem) }
Ama bu bana O(N ** 2)
zaman karmaşıklığı verir:
a !& b #=> doesn't work of course
: Ayrıca, ben 2 dizilerin ortak öğeleri) verir
&
bazı yöntem tersini kullanarak (böyle şekilde onu alma hakkında düşünüyordum)
; ben daha hızlı yapılabilir eminim
başka yolu da, iki diziyi ekleyip uniq
benzer bazı yöntemi ile eşsiz maddeyi bulmak için olabilir, böylece: @iamnotmaynard belirtildiği gibi
[1,1,2,2,3,4,4].some_method #=> would return 3
'(a-b) | (ba) # => [3] 'Bkz. http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-2D ve değişkeni değil, genel olarak' ab’a dikkat edin. ! = ba' – iamnotmaynard
Bu olmalıdır: (ab) | (b-a) –
@ShawnBalestracci Haklısınız. Test konsolumda doğru bir şekilde yazmıştım, ancak yanlış yazmıştım. – iamnotmaynard