def longest_consecutive(nums)
    set = Set.new(nums)
    set.reduce(0) do |longest, num|
        if !set.include?(num-1)
            length = 0
            while set.include?(num + length) do
                length += 1
            end
            next(longest > length ? longest : length)
        end

        longest
    end
end