最大子串和

简介: 最大子串和

描述

对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;
}


相关文章
|
4月前
获取字符下标
获取字符下标
37 0
|
7月前
14. 最长公共前缀
14. 最长公共前缀
|
存储 C语言 C++
【C/C++刷题——leetcode】查找字符串中最大的子串
【C/C++刷题——leetcode】查找字符串中最大的子串
348 0
|
8月前
14.最长公共前缀
14.最长公共前缀
43 0
|
8月前
|
C++
最长公共前缀(C++)
最长公共前缀(C++)
55 0
|
8月前
|
存储 算法 程序员
【算法训练-字符串 一】【子串问题】最长无重复子串、最长回文子串、最长公共前缀
【算法训练-字符串 一】【子串问题】最长无重复子串、最长回文子串、最长公共前缀
75 0
|
测试技术 索引
根据首尾字符串截取中间字符串
今天分享一个函数:虽然它非常简单,但是真的很好用!也很常用!比如 “我今天真的很高兴” 这句话,要把 `今天` 截取出来,我们可以直接调用函数拿到结果,不需要匹配索引、也不用写正则!
81 0
字符串的全排列
字符串的全排列
86 0
|
JavaScript 前端开发 索引
查找字符串中的字符串
查找字符串中的字符串
90 0