53. Maximum Subarray

来源:互联网 发布:52单片机引脚图 编辑:程序博客网 时间:2024/06/06 09:33

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.

click to show more practice.






class Solution {

public:
    int maxSubArray(vector<int>& nums) {
        int n=nums.size();
        vector<int> dp;
        for (int i=0;i<n;i++)

            //dp[i]=0;报错,因为dp为vector类型不能直接赋值,必须先bush_back()

    

            dp.push_back(0);
        dp[0]=nums[0];
        int max=nums[0];
        for(int i=1;i<n;i++){
            
            dp[i]=nums[i]+(dp[i-1]>0?dp[i-1]:0);
            max=max>dp[i]?max:dp[i];
        }
        return max;
    }
};
原创粉丝点击