leetcode--Surrounded Regions
来源:互联网 发布:邮箱服务器软件 编辑:程序博客网 时间:2024/06/07 04:53
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
public class Solution { public void solve(char[][] board) {int rows = board.length;if(rows<=0) return; int cols = board[0].length;if(cols<=0) return; boolean flag[][] = new boolean[rows][cols];ArrayList<Integer> queue_x = new ArrayList<Integer>();ArrayList<Integer> queue_y = new ArrayList<Integer>();boolean OK = true;int[] dir_x = new int[]{-1,1,0,0};int[] dir_y = new int[]{0,0,-1,1};for(int i=0;i<rows;i++){for(int j=0;j<cols;j++){if(board[i][j]=='O'&&!flag[i][j]){int low = 0;int high = 1;OK = true;queue_x.add(i);queue_y.add(j);while(low<high){for(int k=0;k<4;k++){int x = queue_x.get(low)+dir_x[k];int y = queue_y.get(low)+dir_y[k];if(x>=0&&x<rows&&y>=0&&y<cols){if(!flag[x][y]&&board[x][y]=='O'){queue_x.add(x);queue_y.add(y);flag[x][y]=true;high++;}}else{OK = false;}}low++;}if(OK){for(int k=0;k<queue_x.size();k++){board[queue_x.get(k)][queue_y.get(k)] = 'X';}}queue_x.clear();queue_y.clear();}}} }}
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 详解
- ubuntu常用命令
- PCA人脸识别学习及C语言实现
- C++中static、const、static const修饰变量作用详解(转)
- JXL基本操作
- JavaWeb开发环境的配置
- leetcode--Surrounded Regions
- Android 水平ListView的实现
- Android学习记录之--eclispe相关环境的搭建
- 解决cin输入类型错误
- TTL电平、CMOS电平、RS232电平的区别
- Linux_3.1_静态函数库设计
- 求众数(c语言)
- 2.11 带平滑线但无数据标签的散点图
- Spring 学习