leetcode-53
2017-07-13 13:39
591 查看
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.
解题思路
this problem was discussed by Jon Bentley (Sep. 1984 Vol. 27 No. 9 Communications of the ACM P885)the paragraph below was copied from his paper (with a little modifications)
algorithm that operates on arrays: it starts at the left end (element A[1]) and scans through to the right end (element A
), keeping track of the maximum sum subvector seen so far. The maximum is initially A[0]. Suppose we've solved the problem for A[1
.. i - 1]; how can we extend that to A[1 .. i]? The maximum
sum in the first I elements is either the maximum sum in the first i - 1 elements (which we'll call MaxSoFar), or it is that of a subvector that ends in position i (which we'll call MaxEndingHere).
MaxEndingHere is either A[i] plus the previous MaxEndingHere, or just A[i], whichever is larger.
java代码:
public class Solution { public int maxSubArray(int[] nums) { int maxSoFar = nums[0], maxEndingHere = nums[0]; for (int i = 1;i<nums.length;++i){ maxEndingHere= Math.max( maxEndingHere + nums[i], nums[i] ); maxSoFar=Math.max(maxSoFar, maxEndingHere); } return maxSoFar; } }
原题地址
相关文章推荐
- leetcode-53-Maximum Subarray 动态规划
- [LeetCode]53. Happy Number快乐数
- [leetcode53]两种思路解决的Maximun Subarray
- 【leetcode】【53】Maximum Subarray
- leetcode53~Maximum Subarray
- leetcode53-Maximum Subarray-动态规划
- leetcode_53 Maximum Subarray_动态规划
- 【leetcode】Maximum Subarray (53)
- 【Leetcode-Easy-53】Maximum Subarray
- [Leetcode 55] 53 Maximum Subarray
- leetcode || 53、Maximum Subarray
- LeetCode 2015.7.27 64,62,59,466,48,53,113,16
- leetcode_question_53 Maximum Subarray
- leetcode[53]Maximum Subarray
- Leetcode53——Maximum Subarray
- (LeetCode 53)Maximum Subarray
- leetcode 53: Sqrt(x)
- LeetCode-53-Maximum Subarray
- [leetcode53]Maximum Subarray
- leetcode-53-Maximum Subarray