Testcase:
Input
[["X","O","X"],["X","O","X"],["X","O","X"]]
My Output:
[["X","O","X"],["O","O","O"],["X","O","X"]]
Expected Output:
[["X","O","X"],["X","O","X"],["X","O","X"]]
class Solution {
public:
void dfs(int x,int y,vector<vector<char>>& board,int n,int m, vector<vector<int>> &vis,int &flag){
if(board[x][y]=='X' || vis[x][y]){
return;
}
if(x==0 || x==n-1 || y==0 || y==m-1 ){
flag=0;
return;
}
vis[x][y]=1;
board[x][y]='X';
dfs(x-1,y,board,n,m,vis,flag);
if(!flag) board[x-1][y]='O';
dfs(x+1,y,board,n,m,vis,flag);
if(!flag) board[x+1][y]='O';
dfs(x,y-1,board,n,m,vis,flag);
if(!flag) board[x][y-1]='O';
dfs(x,y+1,board,n,m,vis,flag);
if(!flag) board[x][y+1]='O';
}
void solve(vector<vector<char>>& board) {
int n=board.size();
int m=board[0].size();
int flag=1;
vector<vector<int>> vis(n,vector<int>(m,0));
for(int i=0;i<board.size();i++){
for(int j=0;j<board[0].size();j++){
if(board[i][j]=='O'){
if(!vis[i][j]){
dfs(i,j,board,n,m,vis,flag);
if(!flag) board[i][j]='O';
flag=1;
}
}
}
}
}
};
What I have tried:
Tried to dry run my code but couldn't find the error.