LeetCode 53. Maximum Subarray

题目

简单DP

class Solution {
public:
    int dp[100005];
    int maxSubArray(vector<int>& nums) {
        
        if(nums.size()==0)
            return 0;
        
        int ans = nums[0];
        dp[0]=nums[0];
        for(int i=1;i<nums.size();i++)
        {
            if(dp[i-1]<0)
            {
                dp[i]=nums[i];
                
                ans=max(ans,dp[i]);
                
            }
            else
            {
                dp[i]=dp[i-1]+nums[i];
                ans=max(ans,dp[i]);
            }
        }
        
        return ans;
    }
};
posted @ 2019-08-29 07:59  Shendu.CC  阅读(93)  评论(0编辑  收藏  举报