最大连续子序列和

Posted charls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大连续子序列和相关的知识,希望对你有一定的参考价值。

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-subarray

最好动态规划吧,分治有点折磨人,考虑的东西有点多

class Solution {
public:
    int merge(int l,int r,vector<int>& nums)
    {
        if(l==r) return nums[l];
         int mid=(l+r)>>1;
         int c1=0,c2=0,c3=0;
         if(mid>=l) c1=merge(l,mid,nums);//左边最优
         if(mid+1<=r) c2=merge(mid+1,r,nums);//右边最优
         int sum1=0,max1;
         max1=nums[mid];
         for(int i=mid;i>=0;i--)
         {
             sum1+=nums[i];
             max1=max(max1,sum1);
         }
         int sum2=0,max2;max2的初始值要分情况讨论
         if(mid+1<=r) max2=nums[mid+1];
         else max2=0;
         for(int i=mid+1;i<=r;i++)
         {
             sum2+=nums[i];
             max2=max(max2,sum2);
         }
         c3=max1+max2;
         return max(max(c1,c3),c2);
         
    }
    int maxSubArray(vector<int>& nums) {
        int n=nums.size();
        if(n==1) return nums[0];
        
        return merge(0,n-1,nums);

    }
};

 

以上是关于最大连续子序列和的主要内容,如果未能解决你的问题,请参考以下文章

dp-最大连续子序列的和

算法小总结最大连续子序列和最大连续子矩阵的关系与实现

基础练习线性DPcodevs2622 数字序列(最大连续子序列和)题解

题目1077:最大序列和(最大连续子序列和)

求最大连续子序列之和c语言

代码题— 数组最大子序列