题解 | #连续子数组的最大和(二)#

连续子数组的最大和(二)

http://www.nowcoder.com/practice/11662ff51a714bbd8de809a89c481e21

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param array int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def FindGreatestSumOfSubArray(self , array: List[int]) -> List[int]:
        if len(array) == 1:
            return array
        leftlist = [0]
        dplist = [array[0]]
        left = 0
        for ind, val in enumerate(array):
            if ind == 0:
                continue
            if dplist[-1] < 0:
                dplist.append(val)
                left = ind
            elif dplist[-1] >= 0:
                dplist.append(val + dplist[-1])
            leftlist.append(left)

        maxlen = dplist[0]
        for i in range(1, len(dplist)):
            if dplist[i] >= maxlen:
                maxlen = dplist[i]
                resr = i
        resl = leftlist[resr]
        return array[resl:resr + 1]
全部评论

相关推荐

合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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