给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例1:
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。
题解:
首先考虑一个问题就是连续子数组的最大和,如果前两个的最大和,比加上第三个还小一点, 那么直接抛弃前两个的和,从第三个开始计算,这样就很方便的得出代码结果
/*** @param {number[]} nums* @return {number}*/var maxSubArray = function(nums) {let pre = 0, maxAns = nums[0];nums.forEach((x) => {pre = Math.max(pre + x, x);maxAns = Math.max(maxAns, pre);});return maxAns;};
