maximum-subarray

maximum-subarray

https://www.nowcoder.com/practice/32139c198be041feb3bb2ea8bc4dbb01?tpId=46&&tqId=29126&rp=1&ru=/activity/oj&qru=/ta/leetcode/question-ranking

题目描述
请计算给出的数组(至少含有一个数字)中具有最大和的子数组(子数组要求在原数组中连续)
例如:给出的数组为[−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
全部评论

相关推荐

07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务