pat a 1007 Maximum Subsequence Sum
来源:互联网 发布:淘宝什么时候有活动 编辑:程序博客网 时间:2024/06/07 19:08
本是做数据结构mooc的作业,出现很多问题,导致花了很长时间,值得反思。
生词:indices index的复数
这是我最后通过的代码,用的在线处理算法:
#include<cstdio>#include<vector>using namespace std;int first=0,last=0;int MaxSubseqSum(vector<int> vi,int n){int nowSubSum=0,MaxSubSum=-1;//初始化为-1,是为了解决由0和负数组成的用例int a=0,b=0,temp=0,flag=0;for(int i=0;i<n;i++){nowSubSum+=vi[i];if(!flag&&vi[i]>=0)flag=1;if(nowSubSum>MaxSubSum){//当MaxSubSum初值是0时,由0和负数组成的用例,将不会进入此处,b得不到更新。MaxSubSum=nowSubSum;temp=a;b=i;}if(nowSubSum<0){nowSubSum=0;a=i+1;}} if(flag){first=vi[temp];last=vi[b];}if(flag==0)return 0;//解决全是负数的用例return MaxSubSum; }int main(){int n;scanf("%d",&n);vector<int> vi;int a=0;for(int i=0;i<n;i++){scanf("%d",&a);vi.push_back(a);}first=vi[0];last=vi[n-1];int sum=MaxSubseqSum(vi,n);printf("%d %d %d",sum,first,last);return 0;}
以下是标答:思路简单清晰,一边输入一边处理,整体条理性强,模块化强。感觉我写的像毛线球一样。
#include <cstdio>#include <vector>using namespace std;int main() { int n, flag = 0, sum = -1, temp = 0, left = 0, right = 0, tempindex = 0; scanf("%d", &n); vector<int> v(n); for(int i = 0; i < n; i++) { scanf("%d", &v[i]); if(v[i] >= 0) flag = 1; temp = temp + v[i]; if(temp > sum) { sum = temp; left = tempindex; right = i; } else if(temp < 0) { temp = 0; tempindex = i + 1; } } if(flag == 0) printf("0 %d %d", v[0], v[n - 1]); else printf("%d %d %d", sum, v[left], v[right]); return 0;}
耽误了健身,鱼与熊掌不可得兼。
阅读全文
0 0
- pat a 1007 Maximum Subsequence Sum
- pat 1007 Maximum Subsequence Sum
- pat 1007 Maximum Subsequence Sum
- PAT A 1007. Maximum Subsequence Sum (25)
- PAT-A 1007. Maximum Subsequence Sum
- PAT A 1007. Maximum Subsequence Sum (25)
- PAT-A-1007. Maximum Subsequence Sum (25)
- PAT-A 1007. Maximum Subsequence Sum (25)
- PAT - Maximum Subsequence Sum
- PAT Advanced Level 1007:Maximum Subsequence Sum
- PAT 1007(甲级)Maximum Subsequence Sum
- pat(A) 1007. Maximum Subsequence Sum(和最大子段)
- (PAT)1007. Maximum Subsequence Sum
- (PAT)1007. Maximum Subsequence Sum
- pat 1007. Maximum Subsequence Sum
- PAT 1007. Maximum Subsequence Sum
- PAT Maximum Subsequence Sum (25)
- PAT 1007. Maximum Subsequence Sum
- 卷积的使用
- JQuery EasyUI学习总结
- Linux-USB总线驱动分析
- 浮点型数据和0进行比较的探究
- java之IO流
- pat a 1007 Maximum Subsequence Sum
- httpwacth 记录网页信息与浏览器缓存和ie之见的交互
- 数据库探索之旅——连接数据库
- No Pain No Game(数状数组离线查询)
- 【DP】BZOJ4300 绝世好题
- Jian
- 问题移动话费觉得诶度奥哦啊
- java面向对象编程(OOP):封装、抽象、多态和继承
- 工作一年总结