求解最大子段和问题----分治 蛮力 dp

【问题描述】给定一个有n(n≥1)个整数的序列,要求求出其中最大连续子序列的和。例如:序列(-2,11,-4,13,-5,-2)的最大子序列和为20序列(-6,2,4,-7,5,3,2,-1,6,-9,10,-2)的最大子序列和为16。规定一个序列最大子段和至少是0,如果小于0,其结果为0。蛮力法穷举所有连续子序列来得到。设含有n个整数的序列a[0…n-1],穷举所有的连续子序列a...
摘要由CSDN通过智能技术生成

【问题描述】给定一个有n(n≥1)个整数的序列,要求求出其中最大连续子序列的和。
例如:
序列(-2,11,-4,13,-5,-2)的最大子序列和为20
序列(-6,2,4,-7,5,3,2,-1,6,-9,10,-2)
的最大子序列和为16。
规定一个序列最大子段和至少是0,如果小于0,其结果为0。
蛮力法
穷举所有连续子序列来得到。
设含有n个整数的序列a[0…n-1],穷举所有的连续子序列a[i…j],求出它的所有元素之和thisSum,并通过比较将最大值存放在maxSum中,最后返回maxSum。
在这里插入图片描述

long maxSubSum1(int a[],int n)
{
          int i,j,k;
  long maxSum=a[0],thisSum; 
  for (i=0;i<n;i++)     //两重循环穷举所有的连续子序列
  {
     for (j=i;j<n;j++)
    {
      thisSum=0;
      for (k=i;k<=j;k++)
        thisSum+=a
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值