【LeetCode】Maximum Subarray

来源:互联网 发布:matlab 关联矩阵 编辑:程序博客网 时间:2024/06/01 23:02

参考链接

http://blog.csdn.net/magisu/article/details/14515209

题目描述


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.

click to show more practice.

More practice:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.


题目分析

题目是意思是,找出一个子串,要求子串中数字之和最大。
这是一个经典的动态规划的题目,需要了解以下规律。
max_subarray(A[n]) = max( max_subarray(A[n-1]), A[n], max_subarray(A[n-1)(+)A[n] ); 

最大子串和是之前已经遍历过的数字中的最大值max_subarray(A[n-1]),当前值A[n],和加上当前值max_subarray(A[n-1)(+)A[n]这三者之间的最大值。


代码示例




推荐学习C++的资料

C++标准函数库
http://download.csdn.net/detail/chinasnowwolf/7108919
在线C++API查询
http://www.cplusplus.com/


0 0
原创粉丝点击