一、题目地址
二、具体代码
/**
* max sum of the subarray
* @param arr int整型一维数组 the array
* @return int整型
*/
function maxsumofSubarray( arr ) {
//1、max用于保存最大值,且用于返回,开始时定义arr[0]为最大值
let max = arr[0];
//2、pre用于定义上一次遍历保存下来的最大和,开始时定义arr[0]为上一次遍历的最大和
let pre = arr[0];
//3、因为变量pre刚开始已经占据arr[0],所以for循环从数组下标为1开始
for(let i=1; i<arr.length; i++) {
//4、定义now是用来保存当次遍历的最大和
let now;
now = Math.max(pre + arr[i], arr[i]);
//5、比较now和上一次max的大小,如果比上一个max大,now赋值给max
if(now > max) {
max = now;
}
//5、更新上一次遍历的最大和,继续开始循环,直至循环结束
pre = now;
}
//6、返回最大值
return max;
}
module.exports = {
maxsumofSubarray : maxsumofSubarray
};