本文主要是介绍leetcode(js) 53. 最大子序和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
进阶:
如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
解题思路:直接遍历一遍,因为是连续的,所以只需要保持当前的位置是单独当前位置或者前面加过来的两种情况中最大的就可以了
/*** @param {number[]} nums* @return {number}*/
var maxSubArray = function(nums) {//let ans=[];
let maxnum = nums[0];
let len = nums.length;
for(let i=1;i<len;i++)
{ nums[i] = Math.max(nums[i],nums[i]+nums[i-1]);maxnum = Math.max(maxnum,nums[i]);
}
return maxnum;
};
这篇关于leetcode(js) 53. 最大子序和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!