开放式学分制

给一个长度为n的整数列A0 A1 A2 A3 A4,找出两个整数Ai和Aj,使得Ai Aj 尽量大。
输入格式
输入第一行为数据数组T(T<=20).每组数据的第一行为整数的个数n(2<=n<=100 000);以下n行为一个绝对值不超过150 000的整数。
输出格式
对于每组数据,输出Ai Aj的最大值
分析
我们可不可以A数组实现边读边写计数呢,这样可以附加空间O()n降低到O(1 );

#inclde
int main()
{	int T;int Max=0;int ans=0;int xi;int yi;scanf("%d",&T);while(T--){int n;scanf("%d",&n);for(int i=1;i<=n;i++){	int a;scanf("%d",&a);if(i>1){if(Max-a>ans)//更新当前差值最大{ans=Max-a;xi=Max;//保留此时的相加项的值yi=a;}	if(a>Max)//更新前面i项的最大值{Max=a;}}elseMax=a;//用于存储第一个数值}printf("ans: %d xi: %d yi:%d",ans,xi,yi);}return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部