LeetCode Maximum Subarray (最大子段和)

题意:

  给一个序列,求至少含一个元素的最大子段和?

思路:

  跟求普通的最大子段和差不多,只不过需要注意一下顺序。由于至少需要一个元素,所以先将ans=nums[0]。接下来可以用sum求和了,如果小于0就重置为0,表示重新开始累加。注意代码中两个if的顺序不可以呼唤。

 class Solution {
public:
int maxSubArray(vector<int>& nums) {
int sum=, ans=nums[];
for(int i=; i<nums.size(); i++)
{
sum+=nums[i];
if(sum>ans) ans=sum;
if(sum<) sum=;
}
return ans;
}
};

AC代码

上一篇:Ubuntu14.04LTS系统QQ的安装:pidgin-lwqq


下一篇:HBA简介及原理