130. Surrounded Regions
来源:互联网 发布:淘宝内衣拍照现场视频 编辑:程序博客网 时间:2024/06/18 04:06
130. Surrounded Regions
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
转载于点击打开链接
思路:如果边缘有'O',则先把'O'附近的所有关联的'O'记作1,然后剩余的'O'就是被包围的,变化为X,再把1->O。
X X X X X X X X X X X X X X O X -> X X O X -> X X X X X O X X X 1 X X X O X X X O X X X 1 X X X O X X
class Solution { void check(vector<vector<char>> & board, int i,int j, int row, int col) { if(board[i][j]=='O'){ board[i][j]='1'; if(i>1) check(board,i-1,j,row,col); if(j>1) check(board,i,j-1,row,col); if(i+1<row) check(board,i+1,j,row,col); if(j+1<col) check(board,i,j+1,row,col); } }public: void solve(vector<vector<char>>& board) { int m=board.size(); if(!m) return; int n=board[0].size(); for(int i=0;i<m;i++) { check(board,i,0,m,n); if(n>1) check(board,i,n-1,m,n); } for(int j=1;j+1<n;j++) { check(board,0,j,m,n); if(m>1) check(board,m-1,j,m,n); } for(int i=0;i<m;i++) for(int j=0;j<n;j++) { //if(board[i][j]=='1') board[i][j]='O'; if(board[i][j]=='O') board[i][j]='X'; } for(int i=0;i<m;i++) for(int j=0;j<n;j++) { if(board[i][j]=='1') board[i][j]='O'; // if(board[i][j]=='O') board[i][j]='X'; } return; }};
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
- java 基础
- Android强制设置横屏或竖屏
- for循环练习,在控制台逆序打印一个输入的正整数
- Windows 系统下搭建 WAMP 环境
- 对焦算法实现总结
- 130. Surrounded Regions
- 给 UIPickerView 添加完成按钮和取消按钮
- 2016.11.03回顾 more excel交换两列
- easyui-datagrid行编辑,获取每一行某列的值
- 直接插入排序
- Java控制语句
- 字符应用
- 刮刮乐
- 我的第一篇博客,作为一个Java新菜鸟,或许我的问题会很多,但是这不是我退缩的理由。