Given an integer array nums
, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
Example:
Input: [-2,1,-3,4,-1,2,1,-5,4]
,Output: 6
Explanation:
[4,-1,2,1]
has the largest sum = 6
.
给出一段数,让你求其中几个数和最大的那个和
这个题..真没什么好说的,比较简单,直接上代码吧
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int max = INT_MIN, now = INT_MIN;
for (int i = 0; i < nums.size(); i++)
{
if (now < 0)
{
now = nums[i] > now ? nums[i] : now;
max = now > max ? now : max;
}
else
{
int fg = now + nums[i];
if (fg < 0)
{
now = INT_MIN;
}
else
{
max = fg > max ? fg : max;
now = fg;
}
}
}
return max;
}
};