HDOJ1231 ( 最大连续子序列 ) 【逆推或动态规划】
类似HDOJ1003
Problem : 1231 ( 最大连续子序列 ) Judge Status : Accepted
RunId : 5938021 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
RunId : 5938021 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include <stdio.h>
#define N 10005
int a[N],b[N],c[N];
int main()
{
int n,j,tmax,ti,tj,p;
while(scanf("%d",&n),n)
{
p=0;
for (j=0;j<n;j++)
{
scanf("%d",&a[j]);
if(a[j]<0)
p++;
}
if(p==n)
{
printf("0 %d %d\n",a[0],a[n-1]);
continue;
}
c[n-1]=n-1;
b[n-1]=a[n-1];
//注意tmax,ti,tj初始化
tmax=a[n-1];
ti=tj=n-1;
for (j=n-2;j>=0;j--)
{
if(b[j+1]>0) {//这里不能是>=
b[j]=a[j]+b[j+1];
c[j]=c[j+1];
}else{
b[j]=a[j];
c[j]=j;
}
if(b[j]>=tmax){
tmax=b[j];
ti=j;
tj=c[j];
}
}
printf("%d %d %d\n",tmax,a[ti],a[tj]);
}
}
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号