LeetCode53——Maximum Subarray
题意:
就是经典的动态规划问题。
这里直接给出公式:
dp[i]表示以nums[i]结尾的最大子序列和。
那么有:
dp[i]= max { dp[i-1] + nums[i] , nums[i] }
代码:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
vector<int>dp(nums.size());
int result = nums[0];
dp[0]=nums[0];
for (int i = 1; i < nums.size(); i++)
{
dp[i] = max(dp[i - 1] + nums[i], nums[i]);
if (result < dp[i])
result = dp[i];
}
return result;
}
};