[leetcode] Surrounded Regions
来源:互联网 发布:精品淘宝店铺 编辑:程序博客网 时间:2024/06/03 22:05
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 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思路:先遍历外面一圈,然后将外面一圈中为O并且与之相邻的O都替换成A,然后再遍历一遍,将A替换成O,将O替换成X
代码:
class Solution {public: void solve(vector<vector<char>> &board) { if(board.size() == 0 || board[0].size() == 0) return; int row=board.size(); int col=board[0].size(); if(row<=2 || col<=2) return; for(int j=0;j<col;j++){ search(board,0,j); search(board,row-1,j); } for(int i=0;i<row;i++){ search(board,i,0); search(board,i,col-1); } for(int i = 0; i < row; ++i){ for (int j = 0; j < col; ++j){ if(board[i][j] == 'O') board[i][j] = 'X'; else if(board[i][j] == 'A') board[i][j] = 'O'; } } return; } void search(vector<vector<char>> &board, int i,int j){ int row=board.size(); int col=board[0].size(); if(i < 0 || i >= row || j < 0 || j >= col) return; if(board[i][j] != 'O') return; board[i][j] = 'A'; search(board,i - 1, j); search(board,i, j + 1); search(board,i + 1, j); search(board,i, j - 1); }};
0 0
- LeetCode : Surrounded Regions
- [leetcode] Surrounded Regions
- leetcode 128: Surrounded Regions
- LeetCode 39: Surrounded Regions
- 【leetcode】Surrounded Regions
- LeetCode - Surrounded Regions
- LeetCode之Surrounded Regions
- leetcode:Surrounded Regions
- [LeetCode]Surrounded Regions
- LeetCode - Surrounded Regions
- [Leetcode]Surrounded Regions
- Leetcode Surrounded Regions
- [leetcode]Surrounded Regions
- leetcode Surrounded Regions
- Leetcode: Surrounded Regions
- LeetCode-Surrounded Regions
- [leetcode] Surrounded Regions
- leetcode Surrounded Regions 详解
- Acm Club 1325:算法2-3~2-6:Big Bang
- T0602——考虑一个表示图形的类,写出类的属性及方法
- 本机开发Native Development:Invalid path for NDK
- linux上c,c++ 的io函数原型
- 将博客搬至CSDN
- [leetcode] Surrounded Regions
- Android中SoundPool 类使用利弊
- Java关键字static、final使用小结
- uva 10700 算式的加减乘除的运算优先级,算式的运算顺序处理。
- Oracle 中oci 关于null 的处理方法
- STM32F02R8T6Nuceo板子Uart2串口问题
- Thinkphp 模版中传递的是对象,使用:冒号
- iOS7的cell分割线不满屏
- 学生信息管理系统系列博客四