最大子串和
2017-02-12 00:00
148 查看
子串和
http://acm.nyist.net/JudgeOnline/problem.php?pid=44时间限制:5000 ms | 内存限制:65535 KB
难度:3
输入
第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的一行里有n个整数I(-100=<I<=100),表示数列中的所有元素。(0<n<=1000000)
输出
对于每组测试数据输出和最大的连续子串的和。
样例输入
1 5 1 2 -1 3 -2
样例输出
5
描述
给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。
注意全为负数的情况,返回最大负数
我的代码
#include <stdio.h> int main(int argc, char *argv[]) { long long int T,i,t,n,maxSum,tmpSum; scanf("%lld",&T); while(T--){ tmpSum =0; scanf("%lld",&n); scanf("%lld",&t); maxSum =t; for (i=0;i<n-1;i++){ scanf("%lld",&t); tmpSum += t; if(tmpSum>maxSum) maxSum = tmpSum; else if(tmpSum<0) tmpSum =0; } printf("%lld\n",maxSum); } return 0; }
#include<stdio.h> int main() { int n,m,i,max,sum; scanf("%d",&n); while(n--) { max=0; scanf("%d",&m); scanf("%d",&sum); max=sum; while(--m) { scanf("%d",&i); if(sum<0) sum=i; else sum+=i; if(sum>max) max=sum; } printf("%d\n",max); } }
相关文章推荐
- 程序员编程艺术第二十八~二十九章:最大连续乘积子串、字符串编辑距离
- 最大子串和问题及其变形
- 子串和再续(最大m段子串和)
- 最大公共子串
- 数据结构之最大重复子串
- 九度题目:最大回文子串(1252)
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 找最大子串
- 第八届蓝桥杯【Java B组】最大公共子串
- POJ1050 To the Max【最大子串和】
- HDU 6103 二分求最大子串
- 最大连续子串
- 2017第八届蓝桥杯B组省赛第六题:最大公共子串
- N个字符串的最大公共子串 (暴力解法)
- Super Jumping! Jumping! Jumping! HDU - 1087(dp,上升子串求最大和)
- 获取两个字符串的最大相同子串
- 最大公共子串
- 求最大子串
- 寻找字符串中的最大不同子串
- 最大连续乘积子串