携程最后一题,感觉可以AC

    static int schedule(int m,int[] array) {

        int[] sumarray=new int[array.length+1];
        sumarray[0]=0;

        for (int i=1;i<=array.length;i++){
            sumarray[i]=sumarray[i-1]+array[i-1];
        }

        int[][] dp=new int[m+1][array.length+1];

        for(int i=1;i<=array.length;i++){
            dp[1][i]=sumarray[i];
        }
        for(int i=1;i<=m;i++){
            dp[m][1]=sumarray[i];
        }

        for(int i=2;i<=m;i++){
            for(int j=2;j<=array.length;j++){
                dp[i][j]=Integer.MAX_VALUE;
                for(int k=1;k<=j;k++){
                    int tmp=Math.max(dp[i-1][k],sumarray[j]-sumarray[k]);
                    dp[i][j]=Math.min(dp[i][j],tmp);
                }
            }
        }
        return dp[m][array.length];
    }

#携程##笔试题目#
全部评论
会TLE
点赞 回复 分享
发布于 2019-09-04 21:21
k循环时判断一下 提前break AC
点赞 回复 分享
发布于 2019-09-04 21:23

相关推荐

牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务