Разделить массив, где предыдущее значение больше текущего значения - PullRequest
0 голосов
/ 08 ноября 2018

Мне нужно разделить этот массив:

arr = [3, 4, 5, 6, 3, 4, 5, 2, 3]

где предыдущий элемент больше текущего элемента. Результатом должен быть другой массив:

[[3, 4, 5, 6], [3, 4, 5], [2, 3]]

Ответы [ 3 ]

0 голосов
/ 08 ноября 2018
arr.slice_when(&:>).to_a
# => [[3, 4, 5, 6], [3, 4, 5], [2, 3]]
0 голосов
/ 14 ноября 2018

рекурсивный пример.

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)
0 голосов
/ 08 ноября 2018
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...