• 1142 NOJ 最大连续和


    最大连续和

    时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
    总提交 : 1127            测试通过 : 208 

    题目描述

    给出一个长度为n的序列A1A2An,求最大的连续和。要求找到1in,使得Ai+Ai+1+…+Aj尽量大。

    输入

    1行输入一个正整数nn1000),此后输入n行,每行给出一个测试用例,包含正整数mm个整数,以空格分隔各个数。

    输出

    输出n行。对于每一个测试用例,在一行输出最大的连续和。

    样例输入

    2
    3 1 -1 3
    3 1 2 3

    样例输出

    3
    6

    实现代码:

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<limits.h>
    using namespace std;
    int main()
    {
       // freopen("data.in","r",stdin);
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int n;
            scanf("%d",&n);
            int *num=new int[n+2];
            for(int i=1;i<=n;i++)
                scanf("%d",&num[i]);
            int sum=0,max=INT_MIN;//因为可能都是负数,所以设置初始max尽可能的小
            for(int i=1;i<=n;i++)
            {
                if(sum>=0)
                    sum+=num[i];//如果之前的和大于等于0,继续加
                else
                {
                    sum=num[i];//否则,舍弃前面所有的数据,从这一项开始
                }
                if(sum>max)
                {
                    max=sum;
                }
            }
            printf("%d
    ",max);
        }
        return 0;
    }
    
    杭电1003的改编题~代码改改就行了~

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    MongoDb
    js暴露内部方法属性等
    JS闭包
    k8s设计模式
    scrum
    死锁
    Linux下安装php 扩展fileinfo
    linux中whereis、which、find、location的区别和用法
    Linux 命令学习记录
    windows 下 redis 的安装及使用
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965555.html
Copyright © 2020-2023  润新知