41. 最大子数组

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。

 注意事项

子数组最少包含一个数

样例

给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6

 

 

“44. 最小子数组”的姊妹题,思路一样

 1 int maxSubArray(vector<int> &nums) {
 2     // write your code here
 3     int sum = nums[0];
 4     int max_sum = nums[0];
 5     for (int i = 1; i < nums.size(); i++)
 6     {
 7         sum = max(nums[i], nums[i] + nums[i - 1]);
 8         if (max_sum<sum)
 9         {
10             max_sum = sum;
11         }
12         nums[i] = sum;
13     }
14     return max_sum;
15 }

 

posted @ 2017-12-30 05:38  三人木君  阅读(185)  评论(0编辑  收藏  举报