题解 | #扫雷#

扫雷

https://ac.nowcoder.com/acm/problem/22232

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,ls=0;//ls是每轮统计完的雷数
    cin>>n>>m;
    char a[105][105]={0};//这里没有写在上面,可改
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>a[i][j];
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]=='*') cout<<"*";//如果是雷不动输出
            else{
                for(int k=i-1;k<=i+1;k++){
                    for(int l=j-1;l<=j+1;l++){
                        if(a[k][l]=='*') ls++;//遍历上下左右,9宫格
                    }
                }
                cout<<ls;
                ls=0;
            }
        }
        cout<<endl;//一轮统计完成换行
    }
    return 0;
}

alt萌新发稿,数据小AC,到10000TLE,这里AC惹,应该好理解咩?

全部评论
谢谢你的解答,我还傻傻的下标从零开始,写了8个if语句
1 回复 分享
发布于 2021-12-07 09:56
太强了大佬,看懂了
点赞 回复 分享
发布于 01-14 14:20 湖南

相关推荐

notbeentak...:孩子,说实话,选择很重要,可能你换一个方向会好很多,但是现在时间不太够了,除非准备春招
点赞 评论 收藏
分享
评论
8
收藏
分享

创作者周榜

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