题解 | 小红炸砖块

小红炸砖块

https://www.nowcoder.com/practice/2715e18a82a548c7b00c94a348df0b84

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int count = 0;
        int n = 0,m=0,k=0;
        //获取行n,列m,炸次数k
        while (in.hasNextLine() && k==count) { // 注意 while 处理多个 case
            n = in.nextInt();
            m = in.nextInt();
            k = in.nextInt();
        }

        //记录每列被炸次数
        int[] rmCal = new int[m];
        //每次输入行列,行要大于炸的次数才有效炸。java数组初始值为0,输入的列初始值为1,所以要-1;
        // 当行值为2>列a值0时就++,2<列a值3时,就不用增加
        for(count=0;count<k;count++){
            int x = in.nextInt();
            int y = in.nextInt();
            int y_index = y - 1;

            if(x >= rmCal[y_index] + 1){
                rmCal[y_index]++;
            }
        }

        in.close();

        StringBuilder sb = new StringBuilder();
        //行、按题目描述从1开始
        for (int i = 1; i <= n; i++) {
            //列、按java逻辑从0开始
            for (int j = 0; j < m; j++) {
                //第i行小于等于被炸次数的,代表被炸了
                if (i <= rmCal[j]){
                    sb.append(".");
                }else {
                    sb.append("*");
                }
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 15:39
点赞 评论 收藏
分享
07-04 16:00
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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