leetcode Surrounded Regions

来源:互联网 发布:濒死体验知乎 编辑:程序博客网 时间:2024/06/06 20:49

题目要求的是将被'X'包围的'O'替换为‘X’, 则处于边界的‘O’所邻接的'O'均不能被’X‘包围,可以从边界处进行DFS。


代码

class Solution{public:void solve(vector<vector<char>> &board){if(board.empty()||board.size()==0||board[0].size()==0)return;int row = board.size();int col = board[0].size();for(int i = 0; i < col; ++i){judge4NearNeighbor( board,0,i);judge4NearNeighbor( board, row-1,i);}for(int j = 0; j < row; ++j){judge4NearNeighbor( board,j,0);judge4NearNeighbor( board, j,col-1);}for(int i = 0; i < row; ++i )for(int j = 0; j < col; ++j)if(board[i][j]=='Y')board[i][j] = 'O';elseboard[i][j] = 'X';}void judge4NearNeighbor(vector<vector<char>> &board, int i, int j){if(i>=0&&i<=board.size()-1&&j>=0&&j<=board[0].size()-1&&board[i][j]=='O'){board[i][j] = 'Y';judge4NearNeighbor(board, i, j-1);judge4NearNeighbor(board, i-1, j);judge4NearNeighbor(board, i, j+1);judge4NearNeighbor(board, i+1, j);}}};

0 0