LeetCode 53. Maximum Subarray

https://leetcode.com/problems/maximum-subarray/


dp题 很老了

dp[i]是以i为结尾的和,那么当遍历到第i个数的时候,有两种选择,从i开始中心来,或者接着之前的dp[i-1]+nums[i]

记录整个过程的最大值即可,O(n)

话说  @博乐之后,,,我博客浏览量下降很惨啊 T_T



class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        if(nums.size() == 0) return 0;
        int mx = nums[0];
        int dp[100001];
        dp[0] = nums[0];
        for(int i=1;i<nums.size();i++) {
            dp[i] = max(nums[i], dp[i-1]+nums[i]);
            mx = max(mx, dp[i]);
        }
        return mx;
    }
};




你可能感兴趣的:(LeetCode 53. Maximum Subarray)