function FindGreatestSumOfSubArray(array)
{
    // write code here
    //特殊输入
    if (array.length==1){return array[0]}
    if (array.length==0){return null}
    
    //任意一个确定的下标i,对于这个位置的元素来说有两种情况:
    //1、前面的temp值小于零,temp取这个元素;
    //2、前面的temp值大于等于零,temp取前面的加和再加这个元素;
    //用一个临时变量temp去保存对于i位置的最大值,再和max变量中取最大值保存给max
    //注意:temp和max初始赋值不能为0,而必须赋值给第一项元素,因为要考虑到都是负数的情况
    let max = array[0]
    let temp = array[0]
    for(let i =1;i<array.length;i++){
        temp = Math.max(array[i],temp+array[i])
        max=Math.max(max,temp)
    }
    return max
}
module.exports = {
    FindGreatestSumOfSubArray : FindGreatestSumOfSubArray
};