欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

leetcode53. 最大子序和

程序员文章站 2022-03-07 20:14:07
1、题目https://leetcode-cn.com/problems/maximum-subarray/submissions/2、题意题解1:dp dp[i]表示 所有以i结尾的区间中的最大值dp[0] = nums[0];两种情况 dp[i-1]>0就加上dp[i-1]否则说明前面的数位负数 dp[i]等于nums[i];执行用时:4 ms, 在所有 C++ 提交中击败了97.37%的用户内存消耗:7.1 MB, 在所有 C++ 提交中击败了100.00%的用户class...

1、题目

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

2、题意

题解1:dp dp[i]表示 所有以i结尾的区间中的最大值
dp[0] = nums[0];
两种情况 dp[i-1]>0就加上dp[i-1]
否则说明前面的数位负数 dp[i]等于nums[i];
执行用时:
4 ms, 在所有 C++ 提交中击败了97.37%的用户
内存消耗:7.1 MB, 在所有 C++ 提交中击败了100.00%的用户

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

题解2:分治

本文地址:https://blog.csdn.net/weixin_46819595/article/details/107275036