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 }