力扣53最大子序和

动态规划法:
遍历整个整数序列,sum表示在当前下标i之前,可能会组成一个最大序列的子序列。如果sum<=0,说明它对组成最大序列是消极作用,将sum=nums[i]。如果sum>0,说明它对组成最大序列是积极作用,那么sum+=nums[i]。
ans表示已经组成了一些序列,ans记录下这些序列最大值。每次遍历时,如果sum>ans,说明当前序列刷新最大子序和。

class Solution {
public:
    int maxSubArray(vector& nums) {
        if(nums.size()==0)
            return 0;
        if(nums.size()==1)
            return nums[0];
        int sum=nums[0];
        int ans=sum;
        for(int i=1;ians?sum:ans;
        }
        return ans;
    }
};

你可能感兴趣的:(笔记)