python刷題【1】

題目:輸入一個list,輸出list中的字串和最大的值code

example:input

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

solution:io

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,知足要求。變量

相關文章
相關標籤/搜索