keep 第三题,考完试了,才调试出来~~ 求用IDE~

TMD不让用IDE,一直20%
考完试了,debug 2分钟,基本能通过各种例子~~~
大佬们看看

import java.util.*;

public class Main{

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int row = sc.nextInt();
    int col = sc.nextInt();
    int[][] status = new int[row][col];
    int[][] nums = new int[row][2];
    for (int i = 0; i < row; i++) {
        int begin = -1, end = -1;
        boolean flag = false;
        for (int j = 0; j < col; j++) {
            status[i][j] = sc.nextInt();
            if (begin == -1 && status[i][j] == 1) {
                begin = j;
                end = begin;
            }
            if (begin != -1 && status[i][j] == 0) {
                flag = true;
            }
            if (begin != -1 && status[i][j] == 1 && !flag) {
                end++;
            }
        }
        nums[i][0] = begin;
        nums[i][1] = end-1;
    }
    System.out.println(getMaxArea(nums));
}

public static int getMaxArea(int[][] nums) {
    int rows = nums.length;
    int result = 0;
    boolean flag = false;
    int l = Integer.MAX_VALUE, r = Integer.MAX_VALUE;
    for (int i = 0; i < rows - 1; i++) {
        if (nums[i][0] != -1) {
            if (flag == true) {
                l = Integer.MAX_VALUE;
                r = Integer.MAX_VALUE;
                flag = false;
            }
            if (nums[i][0] >= nums[i + 1][0] && nums[i][0] <= nums[i + 1][1]) {
                if (l == Integer.MAX_VALUE && r == Integer.MAX_VALUE) {
                    l = Math.min(nums[i][1], nums[i + 1][1]) - Math.max(nums[i][0], nums[i + 1][0]) + 1;
                    r = 2;
                } else if (!flag) {
                    int temp = Math.min(nums[i][1], nums[i + 1][1]) - Math.max(nums[i][0], nums[i + 1][0]) + 1;
                    l = Math.min(l, temp);
                    r++;
                }
                if (l != Integer.MAX_VALUE) {
                    result = Math.max(result, r * l);
                }
            } else {
                flag = true;
            }
        }
    }
    return result;
}

}

#Keep#
全部评论
80%通过率,无语
点赞 回复 分享
发布于 2018-08-23 22:27
我不知道为什么一直60%,总感觉思路没问题....
点赞 回复 分享
发布于 2018-08-23 22:21
好像还是有问题吧,main方法里获取到的num数组不一定包含最大区域吧
点赞 回复 分享
发布于 2018-08-23 22:12
能不能解释解释
点赞 回复 分享
发布于 2018-08-23 22:02
不能用IDE真的很痛苦
点赞 回复 分享
发布于 2018-08-23 21:52
又凉一家。第一题不知道怎么就是0%
点赞 回复 分享
发布于 2018-08-23 21:52
keep有没有内推?
点赞 回复 分享
发布于 2018-08-23 21:46

相关推荐

点赞 评论 收藏
分享
07-25 11:26
清华大学 Java
打开电脑,思绪又回到了7月份刚开始的时候,感觉这个月过的如梦如幻,发生了太多事,也算是丰富了我本就是平淡的人生吧太早独立的我习惯了一切都是自己做决定,拥有绝对的决定权,而且永远不会听取别人的建议。我就是那个恋爱四年出轨的男主啦,感觉既然在牛客开了这个头,那我就要做个有始有终的人。从我出轨到结束再到和女朋友和好如初真的太像一场梦了,短短的一个月我经历了太多,也成长了很多,放下了那些本就不属于我的,找回了那些我不该放弃的。我的人生丰富且多彩,但人不能一直顺,上天总会让你的生活中出点乱子,有好有坏,让你学会一些东西,让你有成长。我和女朋友的恋爱四年太过于平淡,日常除了会制造一些小浪漫之外,我们的生活...
段哥亡命职场:不得不说,我是理解你的,你能发出来足见你是个坦诚的人,至少敢于直面自己的内心和过往的过错。 这个世界没有想象中那样非黑即白,无论是农村还是城市,在看不见的阴影里,多的是这样的事。 更多的人选择站在制高点去谩骂,一方面是社会的道德是需要制高点的,另一方面,很多人不经他人苦,却劝他人善。 大部分的我们,连自己生命的意义尚且不能明晰,道德、法律、困境,众多因果交织,人会迷失在其中,只有真的走出来之后才能看明白,可是没走出来的时候呢?谁又能保证自己能走的好,走的对呢? 可是这种问题有些人是遇不到的,不去追寻,不去探寻,也就没了这些烦恼,我总说人生的意义在过程里,没了目标也就没了过程。 限于篇幅,没法完全言明,总之,这世界是个巨大的草台班子,没什么过不去了,勇敢面对,革故鼎新才是正确,祝你早日走出来。查看图片
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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