53. 最大子数组和
- 原题链接
- 思路
- 代码
原题链接
leet hot 100-10
53. 最大子数组和
思路
生成一个数字来记录last 表示前面数字全部之和与0取最大值 如果大于0 就加上如果不大于0 就不管 从当前位置从新开始遍历计算时间复杂度O(n) 空间复杂度(1)
代码
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int res=INT_MIN;
for(int i=0,last=0;i<nums.size();i++)
{
last=nums[i]+max(last,0);//让前面相加的数字和0 做比较 如果 大于0 就相加 不大于0 就让当前的数字和0相加
res=max(last,res); //记录一下遍历一遍下来 最大的值是多少
}
return res;
}
};