题目
考点:动态规划、贪心、分治
题解
使用贪心法,首先不断累加数组元素,每一次累加都要与当前最大值进行比较。当数组元素小于0的时候,意味着在遍历后面的元素时如果将之前的序列加上去,一定会拉低总和,所以就要重新计算,即累加和从0开始,又因为只需要求最大值即可,所以也不用记录下标。
var maxSubArray = function(nums) {
let max = -100001, sum = 0;
for(let i = 0; i < nums.length; i++) {
sum += nums[i];
max = Math.max(max, sum);
if(sum < 0) sum = 0;
}
return max;
};