zoukankan      html  css  js  c++  java
  • leetcode21 surrounded regions

    题目描述

    现在有一个仅包含‘X’和‘O’的二维板,请捕获所有的被‘X’包围的区域
    捕获一个被包围区域的方法是将被包围区域中的所有‘O’变成‘X’
    例如
    X X X X↵X O O X↵X X O X↵X O X X
    执行完你给出的函数以后,这个二维板应该变成:
    X X X X↵X X X X↵X X X X↵X O X X

    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 solve(vector<vector<char>> &board) {
            if(board.empty())
                return;
            int rows = board.size();
            int cols = board[0].size();
             
            if(rows==0 || cols==0)
                return;
             
            for(int j=0;j<cols;j++)
            {
                DFS(board, 0, j);
                DFS(board, rows-1, j);         }                  for(int i=0;i<rows;i++)         {             DFS(board, i, 0);             DFS(board, i, cols-1);         }                  for(int i=0;i<rows;i++)             for(int j=0;j<cols;j++)                 if(board[i][j] == 'O')                     board[i][j] = 'X';                  for(int i=0;i<rows;i++)             for(int j=0;j<cols;j++)                 if(board[i][j] == '*')                     board[i][j] = 'O';
        }
        void DFS(vector<vector<char> > &board, int r, int c)
        {
            if(board[r][c] == 'O')
            {
                board[r][c] = '*';             int rows = board.size();             int cols = board[0].size();                          if(r > 1)                 DFS(board, r-1, c);             if(r < rows-2)                 DFS(board, r+1, c);             if(c > 1)                 DFS(board, r, c-1);             if(c < cols-2)                 DFS(board, r, c+1);                     }     }
    };






















  • 相关阅读:
    encodeURI 编码、decodeURI 解码
    JavaScript toLocaleString() 方法
    element-ui el-upload限制图片格式尺寸及图片
    vue计算属性的使用
    element级联选择器表单回显
    关于css浮动需要注意的一点
    el-tree树形结构实现自定义关联
    element UI 表格中暂无数据自定义
    vue登录流程
    vue 中表单置空简单操作
  • 原文地址:https://www.cnblogs.com/hrnn/p/13438213.html
Copyright © 2011-2022 走看看