1. 程式人生 > >python求數列中最大等差陣列的長度

python求數列中最大等差陣列的長度

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  # 等差陣列的最大長度