题目描述

给出一段序列,选出其中连续且非空的一段使得这段和最大。

输入输出格式

输入格式:

输入文件maxsum1.in的第一行是一个正整数N,表示了序列的长度。

第2行包含N个绝对值不大于10000的整数A[i],描述了这段序列。

输出格式:

输入文件maxsum1.out仅包括1个整数,为最大的子段和是多少。子段的最小长度为1。

输入输出样例

输入样例#1:

7
2 -4 3 -1 2 -4 3
输出样例#1:

4

说明

【样例说明】2 -4 3 -1 2 -4 3

【数据规模与约定】

对于40%的数据,有N ≤ 2000。

对于100%的数据,有N ≤ 200000。

代码:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
],maxn,sum,m;
int main()
{
    scanf("%d",&n);
    ;i<=n;i++)
    {
        scanf("%d",&a[i]);
        ) m++;
     }
    if(m==n)
     {
        ;i<=n;i++)
          sort(a+,a++n);
        printf("%d",a[n]);
        ;
    }
    ;i<=n;i++)
     {
         sum+=a[i];
         )
         {
             sum=;
         }
        if(sum>maxn)
         maxn=sum;
     }
     printf("%d",maxn);
     ;
 } 

思路:

对于一个数列,列如:-1,2,5,-9,4,7,-6,89,12;

我们如果加上一个数反而是这个总数变得更小,那样我们还要它干什么!

又因为是连续的字段所以我们只需要把不加这个数的是总数纪录下来,然后以这个数的后一位为头开始找

如果往后的总数比他前面的总数大,那前面的值就被覆盖掉,那我们就引入一个变量maxn来记录这个最大值,

最后把这个最大只输出就好了!

但是!!

要注意:

万一里面全都是负数呢?

那样的话我们就进行特殊判断,如果全都是负数,那就把这些负数中最大的输出就好了!

反正加上其余的负数都没用,那还加他干什么!

最新文章

  1. Jquery和JS获取ul中li标签
  2. 蓝灯(lantern)在服务器(vps)上运行
  3. 探秘JavaScript中的六个字符
  4. thinpad E43系列WIN8装WIN7系统
  5. cocos2d-x读取xml(适用于cocos2d-x 2.0以上版本号)
  6. 初始——第一款个人开发上线app store
  7. C#变量修饰符
  8. iOS开发之AutoLayout中的Content Hugging Priority和 Content Compression Resistance Priority解析
  9. AC 自动机 模板
  10. [HNOI2010]PLANAR
  11. Python中模块之logging &amp; subprocess的讲解
  12. P3958 奶酪
  13. EF实现增删改查
  14. Python基础(七) python自带的三个装饰器
  15. mac的safari浏览器调试ios手机网页
  16. Effective Tensorflow[转]
  17. MysqL中的Show Index From Table_Name命令说明
  18. Download Visual Studio
  19. maven 引入jar包
  20. js 删除数组的指定元素

热门文章

  1. input type=file输入框
  2. mysql-copy to tmp table
  3. 【java】实体类中 Set&lt;对象&gt; 按照对象的某个字段对set排序
  4. Windows下如何用CMD命令跳转到指定的目录下
  5. loj2173 「FJOI2016」建筑师
  6. Leetcode 617.合并二叉树
  7. mysql数据库二进制初始化出现:170425 17:47:04 [ERROR] /application/mysql//bin/mysqld: unknown option &#39;--skip-locking&#39; 170425 17:47:04 [ERROR] Aborting 解决办法
  8. CodeForces875C[拓扑排序] Codeforces Round #440 [Div2E/Div1C]
  9. cf 843 D Dynamic Shortest Path [最短路+bfs]
  10. HDU 3792 素数打表