首页 > 代码库 > 杭电1003 Max Sum TLE
杭电1003 Max Sum TLE
这一题目是要求连续子序列的最大和,所以在看到题目的一瞬间就想到的是把所有情况列举出来,再两个两个的比较,取最大的(即为更新最大值的意思),这样的思路很简单,但是会超时,时间复杂度为O(n^3),因为有三重for语句
#include<stdio.h>#define maxn 101000int main(){ int ncase,flag=1,n,max,sum=0,h,z,a[maxn]; long i,j,k; scanf("%d",&ncase); while(flag<=ncase) { max=-1001; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) { { for(j=i;j<n-1-i;j++) { sum=0; for(k=i;k<=j;k++) sum+=a[k]; if(sum>max) { max=sum; h=i; z=j; } } } } printf("Case %d\n",flag); printf("%d %ld %ld\n",max,h+1,z+1); printf("\n"); flag++; }}
杭电1003 Max Sum TLE
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。