)
题目链接https://leetcode.cn/problems/surrounded-regions/classSolution{public:intdx[4]{1,-1,0,0};intdy[4]{0,0,1,-1};voidsolve(vectorvectorcharboard){//先寻找边缘的O,找到了就进行BFS这样子就可以排除所有的与边缘O相连的所有的O区域//在找完后剩下的O区域直接置为X即可intmboard.size();intnboard[0].size();if(m2||n2)return;for(inti0;im;im-1){for(intj0;jn;j){if(board[i][j]O)BFS(board,i,j,m,n);}}for(inti1;im-1;i){for(intj0;jn;jn-1){if(board[i][j]O)BFS(board,i,j,m,n);}}for(inti0;im;i){for(intj0;jn;j){if(board[i][j]O)board[i][j]X;if(board[i][j]Z)board[i][j]O;}}}voidBFS(vectorvectorcharboard,inti,intj,intm,intn){queuepairint,intq;q.push({i,j});board[i][j]Z;while(q.size()){auto[a,b]q.front();q.pop();for(intk0;k4;k){intxadx[k];intybdy[k];if(xmx0yny0board[x][y]O){q.push({x,y});board[x][y]Z;}}}}};