码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Maximum Subarray

时间:2015-03-13 00:28:08      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

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.

题意:最大连续子序列和。

思路:对于每个数来说如果加入它后此时sum<0的话,那么就让sum=此时这个数,如果大于0的话,那么加上它的话就可能得到最大值,比较得到结果

<pre name="code" class="cpp">class Solution {
public:
    int maxSubArray(int A[], int n) {
        int ans = INT_MIN, sum = INT_MIN;
        for (int i = 0; i < n; i++) {
            sum = sum < 0 ? A[i] : A[i] + sum;
            if (sum > ans) 
                ans = sum;
        }       

        return ans;
    }
};





LeetCode Maximum Subarray

标签:

原文地址:http://blog.csdn.net/u011345136/article/details/44229439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!