Учитывая отсортированный массив из n целых чисел, например:
ary = [3, 5, 6, 9, 14]
Мне нужно рассчитать разницу между каждым элементом и следующим элементом в массиве. Используя приведенный выше пример, я получаю:
[2, 1, 3, 5]
Начальный массив может содержать 0, 1 или много элементов в нем, а числа, которые я буду обрабатывать, будут намного больше (я буду использовать временные метки эпохи). Я пробовал следующее:
times = @messages.map{|m| m.created_at.to_i}
left = times[1..times.length-1]
right = times[0..times.length-2]
differences = left.zip(right).map { |x| x[0]-x[1]}
Но мое решение выше и не является оптимальным, а не идеальным. Может кто-нибудь дать мне руку?