LeetCode中的最大子串和问题(Maximum Subarray)
- 问题描述:
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array
[-2,1,-3,4,-1,2,1,-5,4]
,
the contiguous subarray[4,-1,2,1]
has the largest sum =6
.中文翻译:
在至少有一个数字的数组内部找到一个连续的子数组,使其和为最大。
- js代码
1 /** 2 * @param {number[]} nums 3 * @return {number} 4 */ 5 var maxSubArray = function(nums) { 6 7 var maxEnd = nums[0]; 8 var maxSofar = nums[0]; 9 if(nums.length===0){ 10 return 0; 11 } 12 if(nums.length==1){ 13 return nums[0]; 14 } 15 for(var i=1;i<nums.length;++i){ 16 17 if(maxSofar<0){ 18 maxSofar = nums[i]; 19 }else{ 20 maxSofar += nums[i]; 21 } 22 maxEnd = Math.max(maxEnd,maxSofar); 23 } 24 return maxEnd; 25 26 };