Tablica unikalne wartości

Jaki jest najlepszy , najładniejszy sposób i optymalny , aby sprawdzić czy w tablicy elementy się nie powtarzają??
Ważne jest dla mnie pamiętanie indexu na , którym jest element powtarzający.
Tzn mamy tablice ( uwaga tablica może być nieposortowana):

[6,6,6,1,1,2,4,5,5]
to na pozycji 1, 2 jest powtórka na pozycji 4 jest powórka i na pozycji 7 jest powtórka.

Sprawdzić czy się coś się powtarzaja możesz tak:

array.uniq == array

Jeśli chcesz mieć dane o tym które elementy i na których polach się powtarzają, musisz napisać do tego własną metodę.

positions = Hash.new{|h,e| h[e] = []} array.each.with_index{|e,i| positions[e] << i}
W tablicy asocjacyjnej positions będziesz miał wszystkie informacje o zajmowanych przez określony element pozycjach. Uwaga - ten kod działa z Rubim 1.9.