130. Surrounded Regions

来源:互联网 发布:淘宝收货地址管理 编辑:程序博客网 时间:2024/06/06 04:56

Given a 2D board containing ‘X’ and ‘O’ (the letter 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 XX O O XX X O XX O X X

After running your function, the board should be:

X X X XX X X XX X X XX O X X
class Solution {    public void solve(char[][] board) {        if(board.length <= 2 || board[0].length <= 2 )             return;        int row = board.length;        int column = board[0].length;        for(int i = 0; i < row; i++){            if(board[i][0] == 'O'){                boundarySearch(board, i , 0);            }            if(board[i][column - 1] == 'O'){                boundarySearch(board, i, column-1);            }        }        for(int j = 0; j < column; j++){            if(board[0][j] == 'O'){                boundarySearch(board, 0, j);            }            if(board[row-1][j] == 'O'){                boundarySearch(board, row - 1, j);            }        }        for(int i = 0; i < row; i++){            for(int j = 0; j < column; j++){                if(board[i][j] == 'O'){                    board[i][j] = 'X';                }else if(board[i][j] == '*'){                    board[i][j] = 'O';                }            }        }    }    public void boundarySearch(char[][] board, int i, int j){        if(i < 0 || j < 0 || i >= board.length || j >= board[0].length)             return;        if(board[i][j] == 'X' || board[i][j] == '*')             return;        board[i][j] = '*';        if(i > 1 && board[i - 1][j] == 'O')             boundarySearch(board, i - 1, j);        if(j > 1 && board[i][j - 1] == 'O')             boundarySearch(board, i, j - 1);        if(i < board.length-2 && board[i + 1][j] == 'O')             boundarySearch(board, i + 1, j);        if(j < board[0].length-2 && board[i][j + 1] == 'O')             boundarySearch(board, i, j + 1);    }}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 晶锐和昕锐哪个好 斯柯达昕锐1.6自动 昕锐参数 昕锐座套 新桑塔纳和昕锐哪个好 明锐和昕锐哪个好 昕锐斯柯达报价 斯柯达昕锐和明锐的区别 昕锐轮毂 斯柯达昕锐图片及报价 斯柯达昕锐和新桑塔纳哪个好 昕锐变速箱 昕锐底盘 昕睿 斯柯达明锐和昕锐 斯柯达昕锐真实油耗 昕锐车友会 明锐与昕锐的区别 斯柯达昕锐1.4手动 昕锐汽车团购 斯柯达昕锐售价 斯柯达昕锐大灯改装 斯柯达昕锐碰撞测试 斯柯达昕锐保养手册 斯柯达昕锐和新捷达哪个好 斯柯达昕锐降价 新斯柯达昕锐 新昕锐报价 昙曜五窟 安昙恋 昙读音 昙天 昙花 昙花一现 昙花图片 昙花怎么吃 昙花花语 昙花功效 昙花诗句 昙花怎么养 昙花的功效