菜鸟请教广工一道OJ题

C语言 码拜 9年前 (2015-05-11) 1053次浏览 0个评论
 

这是题目内容:
菜鸟请教广工一道OJ题

下面是我自己写的代码,但提交后是超时(Time Limit Exceeded),请教大神有什么更优的解法吗

#include<stdio.h>

int main()
{
    int T,n,i,a[10003],t,sum,max;

    scanf(“%d”,&T);

    while(T–)
    {
        sum=0;

        scanf(“%d”,&n);

        for(i=1; i<=n; i++)
        {
            scanf(“%d”,&a[i]);
        }

        for(t=2; t<=n; t++)
            sum=sum-a[t];

        if(sum<0)
            sum=-sum;

        max=sum;

        for(i=2; i<=n; i++)
        {
            sum=0;

            for(t=1; t<=n; t++)
            {
                if(t>i)
                    sum=sum-a[t];
                else if(t<i)
                    sum=sum+a[t];
            }

            if(sum<0)
                sum=-sum;

            if(sum>max)
                max=sum;

        }

        printf(“%d\n”,max);
    }

    return 0;
}

40分
你两层for当然TLE啊,看看n有多大。这题显然要做线性算法
引用 1 楼 FancyMouse 的回复:

你两层for当然TLE啊,看看n有多大。这题显然要做线性算法

谢谢你的回复


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明菜鸟请教广工一道OJ题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!