拆分上一个值大于当前值的数组



我需要拆分这个数组:

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]]
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

递归示例。

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)

最新更新