隐藏
题目描述函数定义输入输出示例提示完整代码请编写一个 Python 函数 max_subarray(nums),接受一个整数列表 nums,返回该列表中和最大的连续子数组的和。
def max_subarray(nums: List[int]) -> int:
"""
寻找最大子数组和
Args:
nums: 整数列表
Returns:
最大子数组和
"""
pass
输入一个整数列表 nums,其中 $1 \leq |nums| \leq 10^5$。
返回一个整数,为输入列表中和最大的连续子数组的和。
>>> max_subarray([-2,1,-3,4,-1,2,1,-5,4])
6
>>> max_subarray([1])
1
>>> max_subarray([5, 4, -1, 7, 8])
23
from typing import List
def max_subarray(nums: List[int]) -> int:
"""
寻找最大子数组和
Args:
nums: 整数列表
Returns:
最大子数组和
"""
if not nums:
return 0
max_sum = nums[0]
cur_sum = nums[0]
for i in range(1, len(nums)):
cur_sum = max(nums[i], cur_sum + nums[i])
max_sum = max(max_sum, cur_sum)
return max_sum
print(max_subarray([1]))