本文主要是介绍PAT 1007 Maximum Subsequence Sum,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这道题,按道理来说得一遍过,但是呢,因为一个等号耽搁了太长的时间,掌嘴。幸好得到了一个大佬的帮助。
#include<iostream>
using namespace std;
//这是哟个最大序列和问题,计算以当前结束
int num[10005];
int main()
{int n,m,tempsum=0,start=0,end=0,tempstart=0,flag = 0;long long sum=0x8000000000000000; //64位 cin>>n;if(n==0) return 0;for(int i=0;i<n;i++){cin>>num[i];if(num[i]>=0) flag = 1;tempsum+=num[i];if(tempsum<num[i]){tempsum = num[i];tempstart = i;}if(tempsum>sum){sum = tempsum;end = i; start = tempstart;} }//全是负数 if(!flag) cout<<0<<" "<<num[0]<<" "<<num[n-1];else cout<<sum<<" "<<num[start]<<" "<<num[end];return 0;
}
这篇关于PAT 1007 Maximum Subsequence Sum的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!