易知题意为找到数组中和最大的一个子数组,可利用一个循环找到对于每一个元素之前最大的连续的和,并判断加上该数后与原先数的大小,如大于则替换原先答案,代码入下:
class Solution {
public:
int maxSubArray(vector<int>& nums)
{
int x=nums.size();
int sum=0,ans=nums[0];
for(int i=0;i<x;i++)
{
sum=sum+nums[i];
if(sum>ans) ans=sum;
if(sum<0) sum=0;
}
return ans;
}
};