最大连续子序列和问题

问题描述:给定一个序列a[1],a[2]…a[n],求解其连续子序列中元素和的最大值 
例如: 6 -1 5 4 -7 这个序列最大连续子序列和为14 
具体问题见: hdoj 1003  tzu 1202 
这个问题在《数据结构与算法分析–c语言描述》(weiss著)中文版第13页(英文版第18页)中也有描述。在第21页给出了一个算法程序:   

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

我将算法写成了下面的样子:  

int MaxSubsequenceSum(const int A[], int N)  {    int ThisSum,MaxSum,j;    ThisSum =0, MaxSum =INT_MIN;    for(j = 0; j  MaxSum)        MaxSum = ThisSum;      if(ThisSum 

此时必须将else这个关键字删除,这是因为使用了不同的值来初始化变量引起的。书本中的例子能够始终保证MaxSum为非负值。而我改写后的算法在很多情况下MaxSum都会是负数 
我的acm程序如下(在上面两个网站都是ac): 

#include   #include     #define MAX 100000+100    int main(void)  {    int n;    int m;    int a[MAX];    int i,j;    int thisSum,maxSum;    int maxStart,maxEnd,thisStart;      scanf("%d",&n);    for(i = 1; i  maxSum)          {            maxSum = thisSum;            maxStart = thisStart;            maxEnd = j;          }        if(thisSum  1)      printf("");        printf("Case %d:",i);        printf("%d %d %d",maxSum,maxStart+1,maxEnd+1);      }    return 0;  }

登录后复制

程序主要部分还是上面的算法,只是加上了对子序列首尾索引号的处理。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2445460.html

(0)
上一篇 2025年3月3日 16:04:35
下一篇 2025年2月25日 11:34:55

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 分享ASP.NET学习笔记(11)WebPages PHP

    ASP.NET Web Pages – PHP php 开发人员请注意,web pages 可以用 php 编写。 WebMatrix 支持 PHP 乍一看,认为 WebMatrix 只支持微软的技术。这是不正确的。在 WebM…

    编程技术 2025年3月3日
    200
  • C#中算法的实例详解

    写在前面 整个项目都托管在了 github 上: 善用 Ctrl + F 查找题目。 本节你可能会需要的两个测试数据文件: largeW: http://algs4.cs.princeton.edu/11model/largeW.txt l…

    2025年3月3日 编程技术
    100
  • 伪代码是什么?如何写一个伪代码?

    伪代码是经常用于编程和基于算法的字段的术语;它是一种允许程序员表示算法实现的方法。简单地说,我们可以说它是算法的熟化表示。本篇文章就来带大家简单认识一下伪代码,介绍简单的c语言伪代码怎么写,希望对大家有所帮助。 伪代码是什么? 通常,算法是…

    2025年3月3日
    200
  • c语言之后学什么?

    有朋友在学完c语言后困惑之后该怎么办?小编想说其实只要你c语言基础打得好,学习其他语言都不是事儿,主要看你未来想从事哪方面的工作,下面我将就每几个领域和大家说说,以后可以学哪些。 想未来从事嵌入式开发的,可以学习ARM嵌入式等; 想未来从事…

    2025年3月3日
    200
  • c语言 三种求回文数的算法

    今天小编和大家分享的文章是c语言的三种描述回文数的算法,具有一定参考价值,对c语言回文数有兴趣的可以来看看,希望对你有所帮助。 题目描述 注意:(这些回文数都没有前导0)1位的回文数有0,1,2,3,4,5,6,7,8,9   共10个;2…

    2025年3月3日
    200
  • php与c语言有什么联系和区别?

    php与c语言之间有什么联系和区别?下面本篇文章就给大家简单介绍一下php与c语言之间联系和区别,希望对你们有所帮助。 php与c语言之间的联系 PHP语言的内核就是C语言写成的,其语法大量借鉴C语言、Java和Perl的语法。 php与c…

    2025年3月3日
    200
  • %ld 在 C 语言中什么意思?

    %ld在C语言中什么意思? “%ld”在C语言中是一种格式说明符中的类型,也就是格式输出输入符号,其作用是将输入或者输出的数据按照格式说明符指定的格式进行输入或者输出,该类型表示为数据按十进制有符号长型整数输入或输出。 其他类型 示例代码 …

    2025年3月3日
    200
  • 分享一道逻辑面试题,看看你能答对吗!

    本篇文章给大家分享一道错误答案传遍全网的逻辑面试题(附解析),大家可以对照着自己分析一下,看看是否能答对! 01 故事起源 100个人回答五道题,有81人答对第一题,91人答对第二题,85人答对第三题,79人答对第四题,74人答对第五题。 …

    2025年3月3日 编程技术
    200
  • 如何实现C#中的人脸识别算法

    如何实现C#中的人脸识别算法 人脸识别算法是计算机视觉领域中的一个重要研究方向,它可以用于识别和验证人脸,广泛应用于安全监控、人脸支付、人脸解锁等领域。在本文中,我们将介绍如何使用C#来实现人脸识别算法,并提供具体的代码示例。 实现人脸识别…

    2025年3月3日
    200
  • 如何使用C#编写背包问题算法

    如何使用C#编写背包问题算法 背包问题(Knapsack Problem)是一个经典的组合优化问题,它描述了一个给定容量的背包以及一系列物品,每个物品都有自己的价值和重量。目标是找到一种最佳策略,使得在不超过背包容量的情况下,装入背包的物品…

    2025年3月3日
    200

发表回复

登录后才能评论