给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。
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])))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!