美文网首页工作生活
surrounded-regions

surrounded-regions

作者: DaiMorph | 来源:发表于2019-07-15 20:03 被阅读0次

先按照四周dfs进去,标记不应该修改为X的O,再全部遍历一次

class Solution {
public:
    void solve(vector<vector<char>> &board) {
        if(board.size()==0)return;
        int row=board.size(),col=board[0].size();
        for(int i=0;i<col;i++)dfs(board,row,col,0,i);
        for(int j=0;j<row;j++)dfs(board,row,col,j,col-1);
        for(int i=col-1;i>=0;i--)dfs(board,row,col,row-1,i);
        for(int j=row-1;j>=0;j--)dfs(board,row,col,j,0);
        for(int i=0;i<row;i++)
            for(int j=0;j<col;j++)
            {
                if(board[i][j]=='O')board[i][j]='X';
                if(board[i][j]=='a')board[i][j]='O';
            }
    }
    
    void dfs(vector<vector<char>>&board,int row,int col,int x,int y)
    {
        if(x<0||y<0||x>=row||y>=col)return;
        if(board[x][y]=='O'){
            board[x][y]='a';
            for(int i=0;i<4;i++)
            {
                int nextx=x+X[i],nexty=y+Y[i];
                if(nextx>=0&&nexty>=0&&nextx<row&&nexty<col&&board[nextx][nexty]=='O')
                    dfs(board,row,col,nextx,nexty);
            }
        }
    }
private:
    int X[4]={0,0,1,-1};
    int Y[4]={1,-1,0,0};
};

相关文章

网友评论

    本文标题:surrounded-regions

    本文链接:https://www.haomeiwen.com/subject/bbmxhctx.html