连续子数组的最大和
一、题目
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
二、思路
1.动态规划:解决子问题,寻找最优解的一个过程。递归+记忆化思想
2.memo[ ]累加和记忆化数组,进行动态规划抉择是叠加到之前的序列记录,还是从当前元素开始重新记录;利用max_result变量记录最大值
三、程序实现
var maxSubArray = function(nums) {
let memo=[];
memo[0]=nums[0]
let max_result=nums[0];
for(let i=1;i<nums.length;i++){
memo[i]=Math.max(memo[i-1]+nums[i],nums[i]);//动态规划抉择
max_result=Math.max(memo[i],max_result); //记录最大值
}
return max_result;
};

浙公网安备 33010602011771号