题解 | #连续子数组的最大和#
连续子数组的最大和
http://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484
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
};