方法:动态规划。
基本思想:计算以i为下标结尾的数组的最大子序列值,然后将最大的值与存储的i-1的最大值比较。
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int MaxEnd = nums[0];
int MaxValue = nums[0];
for(int i =1; i<nums.size();i++)
{
MaxEnd = max(nums[i],MaxEnd+nums[i]);#计算以i为下标的子序列最大的值
MaxValue = max(MaxValue,sum);#计算以i为下标的子序列最大的值是否比i-1为下标的子序列的最大值大
}
return MaxValue;
}
};