找出数组中间不符合递减规律的区间

背景:有个研究生朋友研究的课题中有这么一个需求,要将一个呈下降趋势的折线变成递减曲线,方法是先找出折线中不符合递减趋势的一段,将这一段通过某种方法变成递减曲线。所以现在的问题是如何找出不符合递减趋势的区间。变成算法题如下:

有一个大部分元组递减数组,,要找出中间不符合递减规律的数所在区间,要求每个区间放到一个数组中。例如: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]

posted on 2019-03-21 12:06  Lishukang  阅读(224)  评论(0编辑  收藏  举报