题解 | #扫雷#

扫雷

https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd

//参考已有题解的,超时是因为调用太多次System.out,换成每行输出,次数从n*m次减少到n次,时间0.4s
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        char[][] array = new char[n][m];
        for(int i = 0; i < n; i++){
            array[i] = sc.next().toCharArray();
        }
        for(int i = 0; i <n; i++){
            for(int j =0; j < m; j++){
                if(array[i][j] == '*'){
                    continue;
                }else{
                    int count = 0;
                    for(int x = i-1; x <= i+1; x++){
                        if(x < 0 || x>= n){
                            continue;
                        }
                        for(int y = j-1; y <=j+1; y++){
                            if(y < 0 || y>= m){
                            continue;
                            }else if(array[x][y] == '*'){
                                count++;
                            }
                        }
                    }
                    array[i][j] = (char)(count+'0');
                }
            }
           System.out.println(array[i]);
        }
    }
}

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务