题意为找出数组的连续字数组中各个元素和的最大值。
此题可以用DP的思想进行解决,令curSum[i]为从第i项起子串的最大和,则有可得到递推关系:sum[i] = max{A[i], A[i] + sum[i+1]}
代码如下:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int length = nums.size();
int curSum = nums[length - 1];
int maxSum = nums[length - 1];
for(int i = length - 2; i >= 0; i--){
if(curSum < 0)
curSum = nums[i];
else
curSum += nums[i];
if(curSum > maxSum)
maxSum = curSum;
}
return maxSum;
}
};