求最大连续和问题

原创 2007年10月09日 15:40:00

输入:数组a[n]

输出:该数组中和最大的连续子序列,以及该最大和

 

int maxsub2(int* arr,int len)
...{
    
int i,maxsum=INT_MIN,sum=0;
    
int beg=0,end=0,pos=0;
    
for(i=0;i<len;++i)
    
...{
            sum
+=arr[i];
            
if(sum>maxsum)
            
...{
                maxsum
=sum;
                beg
=pos;
                end
=i;
            }

            
if(sum<0)
            
...{
                sum
=0;
                pos
=i+1;
            }

        
    }

    
for(i=beg;i<=end;++i)
        cout
<<arr[i]<<" "<<ends;
    cout
<<endl;
    
return maxsum;
}

 如果只需要输出最大自序列的和,问题还可以更简单

 

int maxsub3(int* arr,int len)
...{
    
int i,maxsum=INT_MIN,sum=0;
    
for(i=0;i<len;++i)
    
...{
        sum
=(sum>0? sum:0+arr[i];
        
if(sum>maxsum)
                  maxsum
=sum;
            
    }

    
return maxsum;
}

 

如果将问题推广一下,求连续的K个子序列和最大

 

int maxsub4(int* arr,int len,int k)
...{
    
int i,maxsum=0,sum=0;
    
for(i=0;i<k;++i)
        maxsum
+=arr[i];
    sum
=maxsum;
    
for(i=1;i<len-k;++i)
    
...{
            sum
=sum+arr[i+k-1]-arr[i-1];
            
if(sum>maxsum)
                           maxsum
=sum;
            
    }

    
return maxsum;
}

六种姿势拿下连续子序列最大和问题,附伪代码(以HDU 1003 1231为例)

问题描述:       连续子序列最大和,其实就是求一个序列中连续的子序列中元素和最大的那个。       比如例如给定序列:            { -2, 11, -4, 13, -5, -2...
  • hcbbt
  • hcbbt
  • 2013年08月28日 21:13
  • 16693

[算法入门经典] 8.1.3 分治法 求最大连续和

这个问题看了好久,
  • x_iaow_ei
  • x_iaow_ei
  • 2014年06月05日 16:52
  • 951

动态规划经典题目:最大连续子序列和

最大连续子序列和问题         给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1  注:为方便起见,如果所有整数均为...
  • zhaobryant
  • zhaobryant
  • 2014年08月13日 15:22
  • 4815

连续子数组的最大和 java实现

题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如...
  • qq_23217629
  • qq_23217629
  • 2016年09月11日 20:25
  • 828

求连续子数组最大乘积

因为数组中存在正负零的情况,所以相比求连续子数组最大和的问题,求最大积稍微复杂一些,不过代码还是很简洁。 假设数组为a[N],max[N] 表示以下标为 i 结尾的子数组乘积最大值,min[N]...
  • martin_liang
  • martin_liang
  • 2014年10月19日 22:20
  • 4396

求最大连续子序列和4种算法解析

1.        题目描述: 给出一个长度为N的序列:a1,a2,……,an,求最大连续和。找到1= 2.        算法1 1)        思路解析:枚举所有可能的子序列的和,通过三...
  • gaoxiangnumber1
  • gaoxiangnumber1
  • 2015年04月16日 23:29
  • 1681

经典字符串算法 “最长上升子序列,最大连续子序列和,最长公共子串”

一、问题描述 这是三道典型的字符串dp问题。 最长上升子序列:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i 设dp[i]表示以i为结尾的最长递增子序列的长度,则状态转...
  • LGCSSX
  • LGCSSX
  • 2017年05月06日 18:00
  • 1427

【算法拾遗】三种方法求连续子数组的最大和

这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典。 问题是这样的:一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该子数组中各元素...
  • mmc_maodun
  • mmc_maodun
  • 2014年03月13日 00:09
  • 17949

最大连续子序列和(java)

最大连续子序列是算法中经典的一个问题。作为总结,今天就从最简单的暴力求解,写道目前能达到最好的线性时间复杂度的算法。 问题描述:找出一个整型数组中的最大连续子序列的和 测试用例:int[] a =...
  • jiaohanhan
  • jiaohanhan
  • 2017年05月13日 14:31
  • 443

求两个字符串的最大连续公共字串

如下两个字符串,公共连续字符串为abcdf,求出这个abcdf, "aaffffsfabcdfasf", "aaaadfsabcdfsdb" 假设字符串长度分别为m,n,这个题有个m*...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2016年09月14日 14:48
  • 1749
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求最大连续和问题
举报原因:
原因补充:

(最多只允许输入30个字)