130. Surrounded Regions
来源:互联网 发布:电气女生知乎 编辑:程序博客网 时间:2024/06/05 03:51
/*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 XAfter running your function, the board should be:X X X XX X X XX X X XX O X X思路1:采用DFS遍历 从矩阵最外围每个边一次进行DFS遍历,如果值为'O'则把值标记为‘T',并向上下左右四个 方向遍历,当四个方向遍历结束后,遍历整个矩阵,如果值为'O'则标记为'X',如果值为 'T'则标记为'O';*/class Solution {public: void solve(vector<vector<char>>& board) { if(board.empty()) return; int m= board.size(),n= board[0].size(); for(int i=0;i<m;i++){ dfs(board,i,n-1); dfs(board,i,0); } for(int j=0;j<n;j++){ dfs(board,0,j); dfs(board,m-1,j); } for(int i=0;i<m;i++) for(int j=0;j<n;j++){ if(board[i][j]=='T') board[i][j] = 'O'; else if(board[i][j]=='O') board[i][j] = 'X'; } } void dfs(vector<vector<char>>& board,int i,int j){ if(board[i][j] == 'O'){ if(board[i][j]=='O') board[i][j] = 'T'; if(j-1 > 0 ) dfs(board,i,j-1); if(j+1 < board[0].size()) dfs(board,i,j+1); if(i-1 > 0 ) dfs(board,i-1,j); if(i+1 < board.size()) dfs(board,i+1,j); } }};
阅读全文
0 0
- [LeetCode]130.Surrounded Regions
- LeetCode 130. Surrounded Regions
- [leetcode] 130.Surrounded Regions
- 130. Surrounded Regions
- Leetcode 130. Surrounded Regions
- 130. Surrounded Regions
- 130. Surrounded Regions
- leetcode 130. Surrounded Regions
- leetcode 130. Surrounded Regions
- LeetCode 130. Surrounded Regions
- 130. Surrounded Regions
- [LeetCode]130. Surrounded Regions
- LeetCode 130. Surrounded Regions
- 130. Surrounded Regions
- LeetCode *** 130. Surrounded Regions
- 130. Surrounded Regions
- Leetcode 130. Surrounded Regions
- [leetcode] 130. Surrounded Regions
- 问题收集
- javaEE JDBC
- PostgreSQL(HGDB)仅保留最近一周日志记录的设置方式
- document.write()覆盖原文档的原因详解
- 初识Hibernate之关联映射(二)
- 130. Surrounded Regions
- jpa小记:注解条件查询
- 机器学习技法课程学习笔记11 -- Gradient Boosted Decision Tree
- ES6常用功能介绍及举例说明
- GKRule
- HTTP协议请求与回应报文格式总结
- Java字符串获取
- 计数排序
- javascript基本语法注意事项