天堂软件上海推广seo
思路
- 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;}
};