面试题 16.17-连续数列
说明
给定一个整数数组,找出总和最大的连续数列,并返回总和。
示例
输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
题解思路
从第2个元素开始遍历,如果当前元素和上一个元素的和大于当前元素的值,则用和替换当前元素,如果小于继续下一次循环,最后数组中最大的数便是所求
代码实现
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n = len(nums)
for i in range(1,n):
sum = nums[i] + nums[i-1]
if nums[i] < sum:
nums[i] = sum
return max(nums)