本文最后更新于610 天前,其中的信息可能已经过时,如有错误请发送邮件到tomding1065@gmail.com
https://programmercarl.com/0053.%E6%9C%80%E5%A4%A7%E5%AD%90%E5%BA%8F%E5%92%8C.html
1.本题看了视频讲解真是让我对于这个题有了新的启发,本题主要考虑的是对于计数起始位置的要求,对于当添加下一个数字之后变为负数之后,将计数变量置为0这样就可以改变起始位置,重复前面的操作,每发现大于计数变量里的数字的时候就将其赋值给最后的结果变量。
CPP
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int res = INT_MIN;
int cnt = 0;
for(int i = 0; i < nums.size(); i++){
cnt += nums[i];
if(cnt > res)res = cnt;
if(cnt < 0)cnt = 0;
}
return res;
}
};