從數組元素中移除重複的最佳方法是什麼? 例如,從陣列從陣列元素中移除重複的元素
a = [4, 3, 3, 1, 6, 6]
需要得到
a = [4, 1]
我的方法的工作原理與元素的大量太慢。
arr = [4, 3, 3, 1, 6, 6]
puts arr.join(" ")
nouniq = []
l = arr.length
uniq = nil
for i in 0..(l-1)
for j in 0..(l-1)
if (arr[j] == arr[i]) and (i != j)
nouniq << arr[j]
end
end
end
arr = (arr - nouniq).compact
puts arr.join(" ")
這是有效的,但是請注意這是'O(n^2)',即對於大型數組非常低效(和OP的算法相同的順序) 。請參閱Jörg的回答以獲得有效答案 – 2011-03-26 19:31:54
,但對於小型陣列,其速度會更快 – fl00r 2011-03-26 20:43:38