代码随想录:最大子数组和
class Solution {
public:
int maxSubArray(vector<int>& nums) {
// dp代表当前位置结尾的最大子数组和
int res = -100001;
vector<int> dp = vector<int>(nums.size(), 0);
dp[0] = nums[0];
if (nums.size() == 1)
return nums[0];
for (int i = 1; i < nums.size(); i++) {
if (dp[i - 1] < 0)
dp[i] = nums[i];
else
dp[i] = dp[i - 1] + nums[i];
res = max(res, dp[i]);
}
return max(nums[0], res);
}
};