)
给你一个整数数组nums请你找出一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和。子数组是数组中的一个连续部分。示例 1输入nums [-2,1,-3,4,-1,2,1,-5,4]输出6解释连续子数组 [4,-1,2,1] 的和最大为 6 。示例 2输入nums [1]输出1示例 3输入nums [5,4,-1,7,8]输出23提示1 nums.length 105-104 nums[i] 104class Solution: def maxSubArray(self, nums: List[int]) - int: ansfloat(-inf) a0 for num in nums: a max(num, a num) # 要么重新开始要么继续累加 ans max(ans, a) # 更新答案 return ans这个太简单了和洛谷的p1115一样那个用c写了题解可以去主页看。不要想得太复杂从第二个输入的开始判断它加上上一个是不是会比本身变得更大如果更大那就把它俩的和作为现在的最大值然后再到第三个看第三个加上之前两个的和是不是更大如果更大就将这个数与之前的和相加成为新的最大值如此递推如果更小就抛弃前面的和自己作为最大值再往下递推。也就是说要么以当前值重新开始要么继续在之前的和上累加。感觉说的不太清楚看看大佬的解释重点是要从自己往前加前面的最大和而不是往后