Мне нужно разделить этот массив:
arr = [3, 4, 5, 6, 3, 4, 5, 2, 3]
где предыдущий элемент больше текущего элемента. Результатом должен быть другой массив:
[[3, 4, 5, 6], [3, 4, 5], [2, 3]]
arr.slice_when(&:>).to_a # => [[3, 4, 5, 6], [3, 4, 5], [2, 3]]
рекурсивный пример.
arr = [3, 4, 5, 6, 3, 4, 5, 2, 3] def ans(list, temps, target) temps = [target[0]] if temps == [] if !target[1] list << temps elsif target[0] < target[1] ans(list, temps << target[1], target[1...target.size]) else ans(list << temps, [target[1]], target[1...target.size]) end end ans([], [], arr)
def spliter array splited_array = [] temp = [] last = array[0] array.each do |element| if element >= last temp << element else splited_array << temp temp = [element] end last = element end splited_array << temp end