PAT Maximum Subsequence Sum (25)
来源:互联网 发布:软件测试好不好 编辑:程序博客网 时间:2024/06/04 19:59
#include <stdio.h>int arr[10008];//保存原始数组int dp[10008];//这个数组保存的是以i为结尾的最大子串的长度。int begining[10008];//把以i为结尾的最大子串的开头下标保存下来。int n;bool allneg=1;int main(){ //freopen("/Users/pantingting/Documents/code/data/input", "r", stdin); scanf("%d",&n); int max,maxj; for (int i=0; i<n; i++) { scanf("%d",&arr[i]); if (arr[i]>=0) { allneg=0;//表示并非全部负数 } } dp[0]=arr[0];//以0结尾的最大连续子串只能是arr【0】 begining[0]=0; max=dp[0]; maxj=0; for (int i=1; i<n; i++) { if (dp[i-1]>0) { dp[i]=arr[i]+dp[i-1];//如果以i-1为结尾的最大子串>0则包含上上一个以i-1为结尾的子串 begining[i]=begining[i-1]; } else{ dp[i]=arr[i];//如果前面子串<0,那么以i为结尾的最大子串则为自己,若包含前面子串,得到的值更小 begining[i]=i; } if (dp[i]>max) { max=dp[i]; maxj=i; } } if (allneg) { printf("%d %d %d\n",0,arr[0],arr[n-1]); return 0; } printf("%d %d %d\n",dp[maxj],arr[begining[maxj]],arr[maxj]); return 0;}
0 0
- PAT Maximum Subsequence Sum (25)
- PAT Maximum Subsequence Sum (25)
- PAT - Maximum Subsequence Sum
- 1007. Maximum Subsequence Sum (25)-PAT
- 【PAT】1007. Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum (25)
- pat 1007. Maximum Subsequence Sum (25)
- PAT A 1007. Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum (25)
- PAT 01-2. Maximum Subsequence Sum (25)
- PAT 01-2. Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum (25)
- PAT-1007. Maximum Subsequence Sum (25)
- pat 1007. Maximum Subsequence Sum (25)
- SrcollView嵌套ListView--android实用技巧
- xml解析--XmlPullParserException
- UVA 10003 - Cutting Sticks (区间DP)
- SIP DTMF
- Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解
- PAT Maximum Subsequence Sum (25)
- JAVA的事件处理机制
- EL 表达式
- OC-NSnumber和NSvalueNSNULL以及集合数组优化写法
- 初学File的简单应用
- 最小生成树算法(Prim和Kruskal)
- Android项目目录结构
- error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)
- 程序员编程面试取胜的8个技巧