zoukankan      html  css  js  c++  java
  • 26.扫雷一次点击

    class Solution {
        int dx[8]={0, 0, -1,1,1, 1,-1,-1};
        int dy[8]={1, -1, 0,0,1,-1,-1, 1};
    public:
        void dfs(vector<vector<char>>& board, int i,int j){
            if(board[i][j]!='E')return;
            int cnt=0;
            for(int k=0;k<8;k++){
                if(i+dx[k]<0||i+dx[k]>=board.size()||j+dy[k]<0||j+dy[k]>=board[0].size())continue;
                if(board[i+dx[k]][j+dy[k]]=='M')cnt++;
            }
            if(cnt==0){//周围没有雷
                board[i][j]='B';
                for(int k=0;k<8;k++){
                    if(i+dx[k]<0||i+dx[k]>=board.size()||j+dy[k]<0||j+dy[k]>=board[0].size())continue;
                    dfs(board,i+dx[k],j+dy[k]);
                }
            }
            else{
                board[i][j]=cnt+'0';return;
            }
            return;
        }
        vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>& click) {
            int m=click[0],n=click[1];
            if(board[m][n]=='M'){board[m][n]='X';return board;}
            dfs(board,m,n);
            return board;
        }
    };
  • 相关阅读:
    第1章 数据结构绪论
    收集的名言警句
    Asp.net MVC知识积累
    我的书单
    ASP.NET Web API
    贱人语录
    正则表达式入门
    Lucene 3.0
    Solr之java操作
    Elasticsearch
  • 原文地址:https://www.cnblogs.com/apo2019/p/13539518.html
Copyright © 2011-2022 走看看