Python教程

最长的递减或递增序列-python

本文主要是介绍最长的递减或递增序列-python,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

要求求出给出的序列中的最长的递增或递减序列。

笨办法-两个动态规划合并

input = [5, 2, 3, 4, 1]

def longList(nums):
    dp1 = [1] * len(nums)  # 递减dp
    dp2 = [1] * len(nums)
    result1 = 1
    result2 = 1

    for i in range(len(nums)-1):
        if nums[i]>nums[i+1]:
            dp1[i+1] = dp1[i]+1
        else:
            dp2[i+1] = dp2[i]+1
        result1 = max(result1, dp1[i + 1])
        result2 = max(result2, dp2[i + 1])
    return max(result1, result2)
res = longList(input)
print(res)

 

这篇关于最长的递减或递增序列-python的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!