Leetcote 130. Surrounded Regions
来源:互联网 发布:盛世网络兼职平台官网 编辑:程序博客网 时间:2024/06/12 21:44
130. Surrounded Regions
题目要求:
在一个二维平面上有至少被'0'或者'X'填满,要求当‘O’被'X包围时:除非'O'就在边界或者'O'临近的'O'也在边界,否则将被‘P’代替即只有在边界由‘O’连成的片区不会被改变为‘X’,其余位置的‘O’均会被改为‘X’;所以依次从每行的左右边界,每列的上下边界出发,检查元素,对于不能由‘O’改为‘X’的位置标记为'P';'
这里对边界处只要是'O'的采用BFS遍历,遍历完成后所有靠近边界的‘O’将被设置为'P',并最终还原'O':
例如
X X X XX O O XX X O XX O X X完成函数后:
X X X XX X X XX X X XX O X X
X X X XX X O XX O X XX O X X完成函数后:
X X X XX X X XX O X XX O X X代码:
void changeo2p(vector< vector<char>>&board,int i,int j){ board[i][j]='P'; int m=board.size(); int n=board[0].size(); if(i>1&&board[i-1][j]=='O')changeo2p(board,i-1,j); if(j>1&&board[i][j-1]=='O')changeo2p(board,i,j-1); if(i<m-1&&board[i+1][j]=='O')changeo2p(board,i+1,j); if(j<n-1&&board[i][j+1]=='O')changeo2p(board,i,j+1); } void solve(vector<vector<char>>& board) { int m=board.size(); if(m<1)return; int n=board[0].size(); if(n<1)return; //0行再BFS for(int i=0;i<n;i++) if(board[0][i]=='O')changeo2p(board,0,i); //0列 for(int i=0;i<m;i++) if(board[i][0]=='O')changeo2p(board,i,0); //m-1行 for(int i=0;i<n;i++) if(board[m-1][i]=='O')changeo2p(board,m-1,i); //n-1列 for(int i=0;i<m;i++) if(board[i][n-1]=='O')changeo2p(board,i,n-1); for(int i=1;i<m;i++) for(int j=1;j<n;j++) 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]=='P')board[i][j]='O'; }
阅读全文
0 0
- Leetcote 130. Surrounded Regions
- [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
- Coursera吴恩达机器学习课程 总结笔记及作业代码——第6周有关机器学习的小建议
- HCNA学习笔记(四)IP编址
- 初级java1
- 旧键盘
- 纯CSS3社会化分享按钮
- Leetcote 130. Surrounded Regions
- 第一篇博客
- 基于BlueZ5.44协议栈的RTL8723 BLE蓝牙连接(一)
- android fragment详解
- 小朋友排队
- UVA 11375 Matches(递推)
- 是不是每一个IT人的身体都很差
- 模板之类模板(数组类模板)
- JAVA深入