PAT(Advance Level) 1007 Maximum Subsequence Sum 解题报告
来源:互联网 发布:网络与系统安全 编辑:程序博客网 时间:2024/05/18 01:17
题目链接http://pat.zju.edu.cn/contests/pat-a-practise/1007
本题是经典的最大子连续序列问题,可以使用分治法求解。
但是本题还有一种很有技巧性的算法,虽然正确性不如分治法,但是时间复杂度较小(仅为O(n))。
注意一个case:-1 0 -2,容易被忽视,正确的输出应该是0 0 0,而不是0 -1 -2。
下面是C++实现代码:
#include<iostream>using namespace std;int num[10010];struct subseq{int maxsum;int start_pos;int end_pos;subseq(int sum=-1,int s=0,int e=0):maxsum(sum),start_pos(s),end_pos(e){}} ans;int main(){int k;cin>>k;ans.end_pos=k-1; //初始化int thissum=0;int tag=0; //标记位,表示工作子序列的起点是否发生了变化int temp_start; //暂存工作子序列起点for(int i=0;i<k;i++){cin>>num[i];thissum+=num[i];if(thissum>ans.maxsum){ans.maxsum=thissum;ans.end_pos=i;if(tag==1) //表示子序列的起点发生变化了{ans.start_pos =temp_start;tag=0;}}else if(thissum<0){thissum=0;tag=1;temp_start=i+1;}}if(ans.maxsum==-1) //表示输入的数字全为负数ans.maxsum=0;cout<<ans.maxsum<<" "<<num[ans.start_pos]<<" "<<num[ans.end_pos]<<endl;//system("pause");return 0;}
- PAT(Advance Level) 1007 Maximum Subsequence Sum 解题报告
- PAT (Advanced Level) 1007. Maximum Subsequence Sum (25) 解题报告
- PAT Advanced Level 1007:Maximum Subsequence Sum
- [PAT (Advanced Level) ]1007. Maximum Subsequence Sum 解题文档
- Pat(Advanced Level)Practice--1007(Maximum Subsequence Sum)
- PAT (Advanced Level) Practise 1007 Maximum Subsequence Sum (25)
- PAT (Advanced Level) Practise 1007 Maximum Subsequence Sum
- PAT(Advanced level) 1007. Maximum Subsequence Sum*
- PAT(Advance Level) 1048 Find Coins 解题报告
- pat 1007 Maximum Subsequence Sum
- pat 1007 Maximum Subsequence Sum
- pat PAT (Advanced Level) Practise 1007. Maximum Subsequence Sum (25)
- PAT - Maximum Subsequence Sum
- 【PAT Advanced Level】1007. Maximum Subsequence Sum (25)
- 【c++】PAT (Advanced Level) 1007. Maximum Subsequence Sum (25)*
- PAT (Advanced Level) Practise 1007. Maximum Subsequence Sum (25)
- 浙大 PAT Advanced level 1007. Maximum Subsequence Sum
- PAT (Advanced Level) Practise 1007. Maximum Subsequence Sum (25)
- HTB r2q
- 学英语
- 低成本服务器搭建千万级数据采集系统
- 黑马程序员:面向对象三大特征之一:继承的介绍
- 加强版viewpager与fragment的实现
- PAT(Advance Level) 1007 Maximum Subsequence Sum 解题报告
- 索引创建的原则
- IOS开发~解决引入第三方framework出现duplicate symbol错误
- XML的主要用途 实例
- Python双头队列实现缓存环
- 【读书笔记】《锋利jQuery》第一章
- 本地Manager访问远程服务
- VPN的使用
- aspx页面FireFox下XML解析错误