[LeetCode] Surrounded Regions
来源:互联网 发布:vpn用数据还是wifi 编辑:程序博客网 时间:2024/06/03 14:08
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
用bfs没问题
class Solution {public: int m,n; queue<int> q; void add(int x,int y,vector<vector<char>> &board){ if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'O'){ board[x][y] = 'q'; q.push(x*n + y); } } void bfs(int x,int y,vector<vector<char>> &board){ add(x,y,board); while(!q.empty()){ int p = q.front(); q.pop(); int px = p / n,py = p % n; add(px - 1,py,board); add(px + 1,py,board); add(px,py - 1,board); add(px,py + 1,board); } } void solve(vector<vector<char>> &board) { if(board.empty()) return; m = board.size(); n = board[0].size(); for(int i = 0;i < n;i ++){ bfs(0,i,board); bfs(m - 1,i,board); } for(int i = 0;i < m;i ++){ bfs(i,0,board); bfs(i,n - 1,board); } for(int i = 0;i < m;i ++){ for(int j = 0;j < n;j ++){ board[i][j] = (board[i][j] == 'q' ? 'O' : 'X'); } } }};
用dfs会超时
class Solution {public: int m,n; void dfs(int x,int y,vector<vector<char>> &board){ if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'O'){ board[x][y] = 'q'; dfs(x - 1,y,board); dfs(x + 1,y,board); dfs(x,y - 1,board); dfs(x,y + 1,board); } } void solve(vector<vector<char>> &board) { if(board.empty()) return; m = board.size(); n = board[0].size(); for(int i = 0;i < n;i ++){ dfs(0,i,board); dfs(m - 1,i,board); } for(int i = 0;i < m;i ++){ dfs(i,0,board); dfs(i,n - 1,board); } for(int i = 0;i < m;i ++){ for(int j = 0;j < n;j ++){ board[i][j] = board[i][j] == 'q' ? 'O' : 'X'; } } }};
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 详解
- Nexus私有仓库使用记
- 截至11月底 成都空港国际快件中心处理快件超20万票
- Java基础----Random
- Android中使用XmlPullParse解析xml文件
- 在phpstorm中配置symfony2项目
- [LeetCode] Surrounded Regions
- 学习计划:技术体系
- fsl Camera 调试第一篇 CameraModule.cpp
- Linux下Tomcat的启动、关闭、杀死进程
- go语言的IDE实现自动补全的功能
- IOS学习 非ARC工程转ARC工程以及其内部对应(比较详细的记录的主要问题)
- Android OpenGL ES 开发教程 从入门到精通
- Longge's problem 隐含了错误 WA
- 电机电流导致cereal_port异常调试