最大子数列和是很经典的动态规划问题了,记为以第
位结尾的最大子数列和,则转移方程为:
容易看出,实际上我们并不需要数组,只需要一个temp记录这些值就可以了,因为每个
都只用了一次。
代码如下:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int temp=0,maxS=INT_MIN,p=0;
while(p<nums.size())
{
temp+=nums[p];
maxS=(maxS>temp)?maxS:temp;
if(temp<0)
temp=0;
p++;
}
return maxS;
}
};