找出数组中间不符合递减规律的区间
背景:有个研究生朋友研究的课题中有这么一个需求,要将一个呈下降趋势的折线变成递减曲线,方法是先找出折线中不符合递减趋势的一段,将这一段通过某种方法变成递减曲线。所以现在的问题是如何找出不符合递减趋势的区间。变成算法题如下:
有一个大部分元组递减数组,,要找出中间不符合递减规律的数所在区间,要求每个区间放到一个数组中。例如:a= [12,11,10,9,10,11,8,7,12,13,45,6],数组a中不符合递减规律的区间是[9,10,11,8],[7,12,13,45,6]
这个要用到递归函数,见代码:
a = [12,11,10,9,10,11,8,7,12,13,45,6] def recursive(a): tempa = [] for i in range(len(a)-1): if a[i] < a[i+1]: tempa.append(a[i]) for j in range(i+1,len(a)): if a[j] > a[i]: tempa.append(a[j]) else: tempa.append(a[j]) print(tempa) recursive(a[j:]) break break recursive(a)
输出结果:
[9,10,11,8]
[7,12,13,45,6]