leetcode- Surrounded Regions
来源:互联网 发布:厦大网络继续教育学院 编辑:程序博客网 时间:2024/06/14 11:28
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相连,其值则不变,否则则转为x
class Solution {public: void solve(vector<vector<char>> &board) { int n = board.size(); if (n < 3) return; int m = board[0].size(); if(m < 3)return; vector<bool> visit(m, false); vector<vector<bool>> v(n,visit); queue<int> q; for(int i = 0; i < n; i++) { if(board[i][0] == 'O') { q.push(i*m); v[i][0] = true; } if(board[i][m-1] == 'O') { q.push(i*m + m-1); v[i][m-1] = true; } } for(int j = 0; j < m; j++) { if(board[0][j] == 'O') { q.push(j); v[0][j] = true; } if(board[n-1][j] == 'O') { q.push((n-1)*m+j); v[n-1][j] = true; } } while(!q.empty()) { int t = q.front(); int i = t/m; int j = t%m; if((i-1 > -1) && (board[i-1][j] == 'O') && (!v[i-1][j])) { q.push((i-1)*m+j); v[i-1][j] = true; } if((j-1 > -1) && (board[i][j-1] == 'O') && (!v[i][j-1])) { q.push(i*m+j-1); v[i][j-1] = true; } if((i+1 < n) && (board[i+1][j] == 'O') && (!v[i+1][j])) { q.push((i+1)*m+j); v[i+1][j] = true; } if((j+1 < m) && (board[i][j+1] == 'O') && (!v[i][j+1])) { q.push(i*m+j+1); v[i][j+1] = true; } q.pop(); } for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) { if(board[i][j] == 'O' && v[i][j] == false) { board[i][j] = 'X'; } } return; }};
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 详解
- C++关键字explict的详解和使用
- hdu 2014 位运算
- SSO(单点登录)实施中遇到的几个问题
- Android项目收集
- S3C2440重新编译内核及移植QT4.7.3
- leetcode- Surrounded Regions
- MySQL数据库的初始化mysql_install_db
- detaching thread with interp frames (count=2)
- linux VFS中dentry结构解析
- tomcat发布路径配置
- 数据库复习
- class文件格式
- Vision引擎中材质着色器介绍
- psotgis shapefile and dbf 插件安装