杭电oj-1003--Max sum

作者: 小小Henry | 来源:发表于2019-10-12 20:59 被阅读0次

    一开始我是分开考虑开始的下标和结束的下标的。
    直到看见某位大佬的代码
    原谅我太菜!!!

    #include <stdio.h>
    
    int main(void)
    {
        /*********膜拜大佬的代码******/
        int row, n, i, j, starti, maxi, tempi, max, temp;
        int a[100000];
        scanf("%d", &row);
        for (i = 0; i < row; i++)
        {
            //初始化
            int a[100000] = { 0 };
            max    = -1001;
            temp   = 0;
            tempi  = 1;
            scanf("%d", &n);
            for (j = 1; j <= n; j++)
            {
                //Input
                scanf("%d", &a[j]);
    
                temp += a[j];
                if (temp > max)
                {
                    max    = temp;
                    starti = tempi;
                    maxi = j;
                }
                if (temp < 0)
                {
                    temp  = 0;
                    tempi = j + 1;
                }
            }    
    
            //Output
            printf("Case %d:\n", i+1);
            printf("%d %d %d\n", max, starti, maxi);
            if (i != row - 1)
                printf("\n");
        }
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:杭电oj-1003--Max sum

        本文链接:https://www.haomeiwen.com/subject/ymucmctx.html