class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
sum=0
max_sum=nums[0]
for i in nums:
sum=sum+i
if sum>max_sum:
max_sum=sum
if sum<0:
sum=0
return max_sum
官方解答:
代码非常简洁,遍历时当和大于当前最大值,就替换当前最大值,否则sum归零,保持当前值,同时继续寻找最大和值,for循环中的两个if语句需要按照上面的顺序来执行。
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
max_substring=nums[0]
for i in range(len(nums)):
max_substring=max(max_substring,nums[i])
for j in range(len(nums)-i-1):
max_substring=max(max_substring,sum(nums[i:(i+j+2)]))
return max(max_substring,nums[-1])
自己考虑的结果,第一代码写的比较混乱,根据测试用例修修补补了两次,第二时间复杂度太高,运行大的测试数组时报运行超时,Fail...