假设有一个数组,为[1, 2, -3, 4, -2, 5, -3, -1, 7, 4, -6],如何找它元素和最大的子数组呢?
    答案是[4, -2, 5, -3, -1, 7, 4],元素和为14.
    分析:
    带记忆的递归,逐步记录求和:

    1. a = [1, 2, -3, 4, -2, 5, -3, -1, 7, 4, -6]
    2. n = len(a)-1
    3. record = [0]*(n+1)
    4. record[0] = 1
    5. for i in range(1, n+1): # 用下标1~n来储存n个数
    6. record[i] = record[i-1] + a[i] # 用record记录a[i]前i个的和
    7. max_num = 0
    8. max_list = []
    9. for i in range(1, n+1):
    10. for j in range(0, i):
    11. sums = record[i] - record[j] # 这样求sum
    12. if (sums > max_num):
    13. max_num = sums
    14. max_list.append(max_num)
    15. print(max(max_list))

    其中record的记录是:

    1. >>> record
    2. [1, 3, 0, 4, 2, 7, 4, 3, 10, 14, 8]