leecode第五十三题(最大子序和)

时间:2020-12-02 16:52:05

leecode第五十三题(最大子序和)

class Solution {
public:
int maxSubArray(vector<int>& nums) {
int len=nums.size();
if(len==)//特殊情况
return nums[]; int max_num=INT_MIN,sum_num=;//注意这里max_num初始化为INT_MIN,以防数组全为负的情况
for(int i=;i<len;i++)
{
sum_num+=nums[i];
if(nums[i]>sum_num)//如果当前求和值还不如我大,要他们何用
sum_num=nums[i]; if(sum_num>max_num)//一路比较最高值
max_num=sum_num;
} return max_num;//返回即可
}
};

分析:

这个题在剑指offer上见过,所以思路还在,写的也算快,唯一有错误的是max_num初始化,我没有考虑全负的情况(也是自己写的有点快,自我感觉太熟了还真不好)。