python刷题【1】

题目:输入一个list,输出list中的字串和最大的值

example:

input: [1,2,-4,5,-9]
output: 5

solution:

def maxsubarray(list):
    cursum = maxsum = list[0]
    for i in range(1,len(list)):
        cursum = max(list[i], cursum + list[i])
        maxsum = max(cursum, maxsum)
    return maxsum
    

cursum 每次会把当前cursum和cursum加上当前列表元素的值相比较,取两者间的最大值,在上述example中最后cursum的值为-4,并不是5,所以需要另一个变量来存储全局最大值
maxsum 存储全局最大值,因为当前list中的元素有可能是负值,所以cursum在此时不能用来表示全局最大值,maxsum正是为了消除这种影响,在上述example中maxsum的值最后为5,满足要求。

    原文作者:JxBetter
    原文地址: https://segmentfault.com/a/1190000015219473
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞