HDOJ1231 ( 最大连续子序列 ) 【逆推或动态规划】

简介:
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奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/05/13/2498061.html,如需转载请自行联系原作者

相关文章
|
算法
代码随想录 Day26 贪心 01 全集 LeetCode455 分发饼干 LeetCodeT346摆动序列 LeetCdoe T53 最大子数组和
代码随想录 Day26 贪心 01 全集 LeetCode455 分发饼干 LeetCodeT346摆动序列 LeetCdoe T53 最大子数组和
43 0
|
人工智能
【动态规划刷题 11】等差数列划分&& 最长湍流子数组
【动态规划刷题 11】等差数列划分&& 最长湍流子数组
|
3月前
|
算法 Java
LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
40 0
|
5月前
|
存储 算法 数据可视化
深入解析力扣161题:相隔为 1 的编辑距离(逐字符比较与动态规划详解)
深入解析力扣161题:相隔为 1 的编辑距离(逐字符比较与动态规划详解)
|
6月前
|
算法
【面试算法——动态规划 20】最长公共子序列&& 不相交的线
【面试算法——动态规划 20】最长公共子序列&& 不相交的线
|
6月前
|
算法
回溯-求出数组的所有子序列【学习算法】
回溯-求出数组的所有子序列【学习算法】
48 0
|
6月前
|
算法 程序员 索引
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
101 0
|
6月前
|
算法 程序员
【算法训练-动态规划 二】【线性DP问题】连续子数组的最大和、乘积最大子数组、最长递增子序列
【算法训练-动态规划 二】【线性DP问题】连续子数组的最大和、乘积最大子数组、最长递增子序列
103 0
|
Java 测试技术
hdu1231 最大连续子序列【动态规划】
hdu1231 最大连续子序列【动态规划】
34 0
|
存储 人工智能 算法
剑指offer(C++)-JZ85:连续子数组的最大和(二)(算法-动态规划)
剑指offer(C++)-JZ85:连续子数组的最大和(二)(算法-动态规划)