# 最大子数组的和
def maxsum_of_subarray(nums):
# 如果全负
if max(nums) < 0:
return max(nums)
# 如果全正
if min(nums) > 0:
return sum(nums)
# 当数组元素有正有负时
current_sum = 0
greatest_sum = 0
for elem in nums:
# 如果当前和<=0,则从此时的这个元素重新开始算
if current_sum <= 0:
current_sum = elem
# 否则,在原来的和上加上这个元素
else:
current_sum += elem
if current_sum > greatest_sum:
greatest_sum = current_sum
return greatest_sum
if __name__ == "__main__":
nums = [2, 3, -4, 10, -8, 9]
print (maxsum_of_subarray(nums))
最大连续子数组的和,python实现
最新推荐文章于 2024-06-17 08:00:00 发布