53. Maximum Subarray

来源:互联网 发布:优集品假货知乎 编辑:程序博客网 时间:2024/06/07 16:53

Related Topics:Dynamic Programming

一开始想复杂了,想用二维数组存下标i到下标j的最大sum,其实用两个变量即可解决。sum存每一次向后移一位后的最大和,res是存此次最大和与之前的最大和相比较所得的最大和

class Solution {

public:
    int maxSubArray(vector<int>& nums) {
        int sum=nums[0];
        int res=sum;
        for(int i=1;i<nums.size();i++){
            sum=max(nums[i],sum+nums[i]);
            res=max(res,sum);
        }
        return res;
    }    
};