题目描述
请计算给出的数组(至少含有一个数字)中具有最大和的子数组(子数组要求在原数组中连续)
例如:给出的数组为[−2,1,−3,4,−1,2,1,−5,4],
子数组[−2,1,−3,4,−1,2,1,−5,4],具有最大的和:6.
解题参考网上:
思路:如果累加为负则抛弃重置为下一个置,但需要保存之前的负值,否则一旦遇到答案是负值的情况这种策略会出错
class Solution: def maxSubArray(self , A ): # write code here if A is None: print(0) m_sum = A[0] max_sum = A[0] for n in A[1:]: if m_sum < 0: m_sum = n; else: m_sum += n; max_sum = max(m_sum,max_sum) return max_sum