关于Python数组的问题

给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。

img

def maxSubArray(arr):
    sum_list = []
    for i in range(len(arr)):
        cur_sum = 0
        for j in range(i, len(arr)):
            cur_sum += arr[j]
            sum_list.append(cur_sum)
    max_element = max(sum_list)
    return max_element

if __name__ == '__main__':
    res = maxSubArray([-2, 1, -3, 4, -1, 2, 1, -5, 4])
    print(res)



s = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
max_num = 0
max_list = []
for i in range(len(s)):
    for j in range(len(s)):
        if sum(s[i:j]) > max_num:
            max_num = sum(s[i:j])
            max_list = s[i:j]
print(max_list)

经典题了

def maxSubArray(nums:list)->int:
    maxValue = sumValue = nums[0]
    for n in nums[1:]:
        sumValue = max(n,sumValue+n)
        maxValue = max(maxValue,sumValue)
    return maxValue

import numpy as np
print(maxSubArray(np.array([-2,1,-3,4,-1,2,1,-5,4])))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632