Hal Fulton <hal9000 / hypermetrics.com> writes:

> Here's a problem my tired brain is having trouble with.
>
> Given a sorted array of integers, convert them into as many
> ranges as possible (ranges of three or more).
>
> Example:
> [1,2,3,4,6,7,8,11,12,15,16,17] ==> [1..4,6..8,11,12,15..17]

Interesting one to golf with:

a.each_index{|i|a[i..j=i+2]==[x=a[i],x+1,x+2]and(0while a[j]+1==a[j+=1];a[i..j-=1]=a[i]..a[j])}