力扣53、最大子序和


思路

定义now为以i结尾的最大子序和,now初始化为0;

对于一个数,要么本身最大,要么加上前面的子序列使自己更大,每遍历一个数,更新一下now与ans。

代码演示

class Solution {
public:
    int maxSubArray(vector& nums) {
        int ans = INT_MIN, now = 0;
        for (auto &x : nums) {
            now = max(now + x, x);
            ans = max(ans, now);
        }
        return ans;
    }
};
int maxSubArray(int* nums, int numsSize){
    int tempsum = 0, maxsum = INT_MIN;
        for (int i = 0; i < numsSize; i++) {
            tempsum += *(nums + i);
            maxsum = tempsum > maxsum ? tempsum : maxsum;
            tempsum = tempsum > 0 ? tempsum : 0;
        }
        return maxsum;
}

文章作者: Axieyun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Axieyun !
评论
评论
  目录