码迷,mamicode.com
首页 > 其他好文 > 详细

最大子序列和问题的解

时间:2015-04-01 19:50:56      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

最大的子序列和的问题:

      给定整数A1,A2,...,An(可能有负数),求Σjk=i   Ak 的最大值(为方便起见,如果所有整数均为负数,则最大子序列的和为0)。

      

      这道题应该是比较基础的题目,有多种解法,时间复杂度也不尽相同,在这里就给大家介绍一种最有效的算法,其时间复杂度为O(n).

   代码如下:

   应该是比较好理解的。。。。注意题目要求所有整数均为负数时输出0.

int MaxSubsequenceSum(const int A [] , int N )
{
   int  ThisSum , Maxsum , j ;
   
   ThisSum = MaxSum = 0 ;
   for( j=0 ; j<N ; j++ )
   {
       ThisSum + = A [ j ] ;
       
       if( ThisSum > MaxSum )
            MaxSum = ThisSum ;
       else
            if( ThisSum < 0)
               ThisSum = 0 ;
   }


   return MaxSum ; 
}

 

    

最大子序列和问题的解

标签:

原文地址:http://www.cnblogs.com/yaoyueduzhen/p/4384412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!