zoukankan      html  css  js  c++  java
  • leetcode[130]Surrounded Regions

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'.

    A region is captured by flipping all 'O's into 'X's in that surrounded region.

    For example,

    X X X X
    X O O X
    X X O X
    X O X X
    

    After running your function, the board should be:

    X X X X
    X X X X
    X X X X
    X O X X
    class Solution {
    public:
    void travel(int i, int j, vector<vector<char>> &board)
    {
        if(i<0||i>=board.size()||j<0||j>=board[0].size())return;
        if(board[i][j]=='O')
        {
            board[i][j]='Q';
            if(i-1>=1)travel(i-1,j,board);
            if(i+1<=board.size()-2)travel(i+1,j,board);
            if(j-1>=1)travel(i,j-1,board);
            if(j+1<=board.size()-2)travel(i,j+1,board);
        }
    }
    void solve(vector<vector<char>> &board)
    {
        if(board.empty()||board.size()<3||board[0].size()<3)return;
        int m=board.size();
        int n=board[0].size();
        for(int i=0;i<m;i++)
        {
            if(board[i][0]=='O')travel(i,0,board);
            if(board[i][n-1]=='O')travel(i,n-1,board);
        }
        for(int j=0;j<n;j++)
        {
            if(board[0][j]=='O')travel(0,j,board);
            if(board[m-1][j]=='O')travel(m-1,j,board);
        }
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                if(board[i][j]=='X')continue;
                board[i][j]=board[i][j]=='Q'?'O':'X';
            }
        }
    }
    };
  • 相关阅读:
    python的包和模块
    python 匿名函数
    hdu 1455 Sticks
    python 返回函数
    python 自定义排序函数
    batchsize对收敛速度的影响
    mini_batch GD
    dropout
    sift
    hog
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4281260.html
Copyright © 2011-2022 走看看