首页 > 其他 > 详细

数组最大连续子数组和

时间:2014-02-18 16:16:39      阅读:355      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#include<assert.h>
using namespace std;
int maxSum(int* a, int n)
{
    assert(a != NULL && n >= 1);
    int maxSum = a[0];
    int currentSum = a[0];
    for(int i = 0; i < n; i++)
    {
           
         if(currentSum <= 0)
            currentSum = a[i];
         else
             currentSum += a[i];
              
         if(currentSum > maxSum)
          maxSum = currentSum;
    }
      
    return maxSum;
        
}
int main()
{
     int a[] = {1, 2, 3, 10, -20, -100, 4, 20};
     cout<< maxSum(a, 8)<<endl;
      
     int b[] = {-1, -2, -3};
     cout<< maxSum(b, 3)<<endl;
      
    int c[] = {-1, 2, 3, -5, 6, -6, 7, 1, - 10, 3};
    cout<< maxSum(c, 10)<<endl;
    return 0;
}


数组最大连续子数组和

原文:http://2673601.blog.51cto.com/2663601/1359990

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!