力扣-动态规划-53 最大子数组和
思路
- dp数组定义:以i为结尾的字符串的最大子数组和为dp[i]
- 递推公式: dp[i] = max(nums[i], dp[i-1] + nums[i]);
- dp数组初始化:dp[0] = nums[0];
- 遍历顺序:顺序
- 时间复杂度:
代码
class Solution {
public:
int maxSubArray(vector<int>& nums) {
if(nums.size() == 0) return 0;
vector<int> dp(nums.size(), 0);
dp[0] = nums[0];
int res = dp[0];
for(int i = 1; i < nums.size(); i++){
dp[i] = max(nums[i], dp[i-1] + nums[i]);
res = max(res, dp[i]);
}
return res;
}
};