我需要合并一个数组中的连续重复元素
[1,2,3,1]
变
[1,1]
#uniq不能用于此目的.为什么?因为#uniq会产生这个:
[1,3]
解决方法
def remove_consecutive_duplicates(xs) [xs.first] + xs.each_cons(2).select do |x,y| x != y end.map(&:last) end remove_consecutive_duplicates([1,1]) #=> [1,1]
这将返回一个像uniq一样的新数组,并在O(n)时间内工作.