题解 | 扫雷

扫雷

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


#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, m, count = 0;
    cin >> n >> m;
    vector<vector<char>> arr(n, vector<char>(m));
    for (auto& row : arr) {
        for (auto& c : row) {
            cin >> c;
        }
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (arr[i][j] == '.') {
                for (int offset_i = -1; offset_i <= 1; offset_i++) {
                    for (int offset_j = -1; offset_j <= 1; offset_j++) {
                        if (offset_i == 0 && offset_j == 0) continue;

                        int res_i = i + offset_i, res_j = j + offset_j;
                        if (res_i >= 0 && res_i < n && res_j >= 0 &&
                                res_j < m && arr[res_i][res_j] == '*') {
                            count++;
                        }
                    }
                }
                arr[i][j] = count > 0 ? '0' + count : '0';
            }
            cout << arr[i][j];
        }
        // cout << endl;
        cout << '\n';
    }
    return 0;
}

全部评论

相关推荐

qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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