浙大PAT甲级-1007
来源:互联网 发布:淘宝渠道管理在哪里 编辑:程序博客网 时间:2024/06/04 23:28
最大子段和问题
涉及算法:动态规划
思路:先求出序列中从开头到第1(2,3,4...n)个元素结尾的子段的最大子段和,整个序列的最大子段和肯定在其中;
比较就可以确定序列的最大子段和;最后确定最大子段的开头和结尾元素。
#include <iostream>#include <climits>using namespace std;int main(){ int a[10000], n, i, maxa[10000], Max=-INT_MAX, first=0, last=0; cin>>n; for(i=0;i<n;i++) cin>>a[i]; maxa[0]=a[0]; for(i=1;i<n;i++)//maxa[i]表示以i结尾的字符串的最大子段和 if(maxa[i-1]<0) maxa[i]=a[i]; else maxa[i]=maxa[i-1]+a[i]; for(i=0;i<n;i++) if(Max<maxa[i]){ Max=maxa[i]; last=i; } for(int j=0;j<=last;j++){ int x=0; for(i=j;i<=last;i++) x+=a[i]; if(x==Max){ first=j; break; } } if(Max<0){ Max=0; first=0; last=n-1; } cout<<Max<<" "<<a[first]<<" "<<a[last]<<endl; return 0;}
阅读全文
0 0
- 浙大PAT甲级-1007
- 浙大pat甲级 1023
- 浙大pat甲级 1024
- 浙大pat甲级 1025
- 浙大PAT甲级 1026
- 浙大PAT甲级 1028
- 浙大PAT甲级 1029
- 浙大PAT甲级 1030
- 浙大PAT甲级 1031
- 浙大PAT甲级 1032
- 浙大PAT甲级 1033
- 浙大PAT甲级 1035
- 浙大PAT甲级 1037
- 浙大PAT甲级 1039
- 浙大PAT甲级 1040
- 浙大PAT甲级 1038
- 浙大PAT甲级 1041
- 浙大PAT甲级 1042
- 深入java并发体系
- IDEA 打war包
- Scala中使用两种方式对单词进行次数统计(wordCount)
- 通过HttpURLConnection抓取图片
- dubbo运行流程
- 浙大PAT甲级-1007
- SHAR1,获取不同,release版本SHAR1,debug版本SHAR1,导致定位失败,经纬度获取为0
- springboot(十四):springboot整合shiro-登录认证和权限管理
- abstract与interface
- 新的开始
- caffe 添加Python层
- 归并排序
- java中break跳出当前循环的实例
- 《代码大全》