代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

@param array int整型一维数组

@return int整型一维数组

class Solution:
    def FindGreatestSumOfSubArray(self , array: List[int]) -> List[int]:
        # write code here
        if not array: return []
        if len(array) == 1:
            return array
        start, end = 0, 0
        maximum = array[0]
        pre = array[0]
        for i in range(1, len(array)):
            cur = array[i]
            if pre < 0 and cur > pre:
                start = i
            elif pre >= 0:
                cur += pre
            if cur >= maximum:
                maximum = cur
                end = i
            pre = cur
        return array[start:end+1]