题目:


解题思路:

遍历数组,并判断现在的值是否要新开辟一个数组还是加入到前面的数组,只需要判断新开辟的数组即现在指向的值本身和加入到前面的数组中的各值之和哪个大就执行哪个。
代码:
/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function(nums) {
const memo=[];
memo[0]=nums[0];
for(let i=1;i<nums.length;i++)
{
memo[i]=Math.max(memo[i-1]+nums[i],nums[i]);
}
let max=nums[0];
for(let i=0;i<memo.length;i++)
{
max=Math.max(memo[i],max);
}
return max;
};
优化:
/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function(nums) {
const memo=[];
memo[0]=nums[0];
let max=nums[0];
for(let i=1;i<nums.length;i++)
{
memo[i]=Math.max(memo[i-1]+nums[i],nums[i]);
max=Math.max(max,memo[i]);
}
return max;
};
500

被折叠的 条评论
为什么被折叠?



