Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int count(vector<vector<char>>& board,int i_in,int j_in){
- int s1=board.size();
- int s2=board[0].size();
- int ans=0;
- for(int i=max(0,i_in-1);i<=min(s1-1,i_in+1);i++){
- for(int j=max(0,j_in-1);j<=min(s2-1,j_in+1);j++){
- if(board[i][j]=='M'){
- ans++;
- }
- }
- }
- return ans;
- }
- void dfs(vector<vector<char>>& board,int i,int j){
- if(board[i][j]=='E'){
- int c=count(board,i,j);
- if(c==0){
- board[i][j]='B';
- int s1=board.size();
- int s2=board[0].size();
- dfs(board,max(0,i-1),j);
- dfs(board,min(s1-1,i+1),j);
- dfs(board,i,max(0,j-1));
- dfs(board,i,min(s2-1,j+1));
- }else{
- board[i][j]=(char)('0'+c);
- }
- }
- return;
- }
- vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>& click) {
- if(board[click[0]][click[1]]=='M'){
- board[click[0]][click[1]]='X';
- return board;
- }
- dfs(board,click[0],click[1]);
- return board;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement