动态规划——53. 最大子序和
题目:
思路:
-
dp数组的定义:
dp[n] 代表在nums[n]时的最大子序和。 -
base_case:
dp[0] = nums[0] -
状态转移方程:
dp[i] = max(nums[i], dp[i-1]+nums[i])设置一个res存储最大自序和。
代码:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int n = nums.size();
int dp[n];
dp[0] = nums[0];
int result = dp[0];
for (int i=1; i<n;i++){
dp[i] = max(dp[i-1]+nums[i],nums[i]);
result = max(result, dp[i]);
}
return result;
}
};