python求数列中最大等差数组的长度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kangyucheng/article/details/82378605
nums = [5,10,14,15,20,25,26,27,28,30,31]

diff_max = nums[len(nums)-1]-nums[0]

dp = [[0] * (diff_max+1) for i in range(len(nums))]

for i in range(len(nums)):
    for j in range(diff_max):
        dp[i][j] =1

longest_length = 1

for i in range(len(nums)):
    j = i-1
    while j >=0 :
        temp = nums[i]-nums[j]
        dp[i][temp] =dp[j][temp] + 1
        longest_length = max(longest_length,dp[i][temp])
        j-=1
print longest_length  # 等差数组的最大长度

猜你喜欢

转载自blog.csdn.net/Kangyucheng/article/details/82378605