最大子串和

简介: 最大子串和

描述

对n个整数的序列a1,a2,a3,....an, 元素ai, ai+1,ai+2, .......  aj-1,aj称为其一个子序列。其中 1 <= i <= j <= n。子序列元素之和称为子段和,即, ai + ai+1+  ai+2 +.......+ aj-1+ aj .

现在,给你一个整数序列(n <= 100000),请求出其所有子串和中最大的一个的值。保证所有子段和都可以用long表示。

输入

第一行是一个整数n,表示序列中整数的个数。

第二行包含n个整数,即a1,a2,a3,....,an

输出

一个整数,为所有子段和中最大的一个的值。

样例输入

6

-2 11 -4 13 -5 -2

样例输出

20

#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
  int a[100000],n;
  scanf("%d",&n);
  for(int i=0;i<n;i++)
  {
    scanf("%d",&a[i]);
  }
   int dp[n];
   dp[0]=a[0];
   int answer=dp[0];
   for(int i=1;i<n;i++)
   {
    dp[i]=max(dp[i-1]+a[i],a[i]);
    answer=max(answer,dp[i]);
   } 
   printf("%d",answer);
    return 0;
}


相关文章
|
3月前
|
数据安全/隐私保护
正则表达式小结
正则表达式小结
48 0
|
3月前
正则表达式的使用
正则表达式的使用
34 1
|
数据安全/隐私保护
正则表达式之最常用的
正则表达式之最常用的
71 0
|
机器学习/深度学习 Windows JavaScript
详细的正则表达式
只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}$"。只能输入m~n位的数字:。"^\d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
867 0
|
Shell Linux Python
正则表达式与运用
正则表达式用的地方是很多的。比如字符串处理过程中。最近遇到记录一下。 1. 比如在shell中 1 #!/bin/bash 2 3 str="date:2017-11-28 os:centos blackbord:blog" 4 5 echo $str | grep centos --colo...
1270 0
|
JavaScript C# 前端开发