Maximum Subarray

Description:

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.

 

Code:

 int maxSubArray(vector<int>& nums) {
       if (nums.size()!=0)
              return INT_MIN;
        int maxValue = nums[0] ;
        int temp = nums[0];
        for (int i = 1; i < nums.size(); ++i)
        {
            temp += nums[i];
            if (temp > maxValue)
                maxValue = temp;
            if (temp < 0)
            {
                temp = 0;
            }
        }
        return maxValue;
    }

 

 

总结:

做起来不是很顺,只有大概思路,主要是上述代码中两个if的处理不能很快理清。

posted @ 2015-06-14 09:57  Rosanne  阅读(142)  评论(0编辑  收藏  举报