题目描述
给定一个数组arr,返回子数组的最大累加和
题目保证没有全为负数的数据
[要求] 时间复杂度为O(n),空间复杂度为O(1)
/**
* max sum of the subarray
* @param arr int整型一维数组 the array
* @return int整型
*/
function maxsumofSubarray( arr ) {
// write code here
//如果"前一个值" + "当前值" > "当前值",那么保留累加结果至当前值
let max = 0;
if(arr.length == 1) return arr[0];
for(let i = 1;i<arr.length;i++){
arr[i] = Math.max(arr[i],arr[i-1]+arr[i]);
max = Math.max(max,arr[i]);
}
return max;
}
module.exports = {
maxsumofSubarray : maxsumofSubarray
};