剑指 Offer 42. 连续子数组的最大和(简单)

发布时间 2023-09-02 19:57:11作者: 孜孜不倦fly

题目:

class Solution {
public:
    int maxSubArray(vector<int>& nums) {      //dp[i]表示以nums[i]结尾的连续子数组的最大和
        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]);      //以nums[i]结尾的连续子数组的最大和,要么是和前一个子数组相加的和,要么就是从自身重新计算
            result = max(result, dp[i]);      //要用result来记录最大和
        }
        return result;
    }
};