From: "Kroeger Simon (ext)" Date: 2005-08-05T19:01:06+09:00 Subject: Re: algorithm help > d = [1, 3, 4, 5, 6, 7, 8, 9, 15, 38, 39, 40, 41, 6789, 6790, > 9998, 9999] > puts d.inject([d[0]..d[0]]){|r,x|r<<(((r.last.end+1>=x)?r.pop.end: > x)..x)} erm, this has to be d = [1, 3, 4, 5, 6, 7, 8, 9, 15, 38, 39, 40, 41, 6789, 6790, 9998, 9999] puts d.inject([d[0]..d[0]]){|r,x| r<<(((r.last.end+1>=x)?r.pop.first: x)..x)} Simon