题目描述
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
解答
class Solution
{
public:
int maxSubArray(vector<int>& nums) {
if(nums.size() == 1) return nums[0];
vector<int> result(nums.size());
result[0] = nums[0];
for(int i = 1; i < nums.size(); ++i)
result[i] = nums[i] > nums[i]+result[i-1] ? nums[i] : nums[i]+result[i-1];
int max = result[0];
for(int i = 1; i < nums.size(); ++i)
max = max > result[i] ? max : result[i];
return max;
}
};