LeetCode 130 Surrounded Regions
2015-04-20 15:16
218 查看
题目
五子棋棋盘,被围的'O‘全部变成’X‘
代码
public class Solution {
public void solve(char[][] board) {
if(board == null || board.length ==0){
return ;
}
int row = board.length;
int col = board[0].length;
boolean[][] visited = new boolean[row][col];
for(int j = 0;j<col;j++){
useme(board,0,j,visited);
useme(board,row-1,j,visited);
}
for(int i = 0;i<row;i++){
useme(board,i,0,visited);
useme(board,i,col-1,visited);
}
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
if(!visited[i][j] && board[i][j]=='O'){
board[i][j]='X';
}
}
}
}
public void useme(char[][] board,int i,int j,boolean[][] visited){
if(test(board,i,j) && !visited[i][j] && board[i][j]=='O'){
visited[i][j]=true;
useme(board,i-1,j,visited);
useme(board,i+1,j,visited);
useme(board,i,j-1,visited);
useme(board,i,j+1,visited);
}
}
public boolean test(char[][] board,int i ,int j){
int row = board.length;
int col = board[0].length;
if(i<0 || i>=row ||j<0|| j>=col){
return false;
}
return true;
}
}
这个代码会 StackOverflow,把bfs的部分用queue改写就好。
五子棋棋盘,被围的'O‘全部变成’X‘
代码
public class Solution {
public void solve(char[][] board) {
if(board == null || board.length ==0){
return ;
}
int row = board.length;
int col = board[0].length;
boolean[][] visited = new boolean[row][col];
for(int j = 0;j<col;j++){
useme(board,0,j,visited);
useme(board,row-1,j,visited);
}
for(int i = 0;i<row;i++){
useme(board,i,0,visited);
useme(board,i,col-1,visited);
}
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
if(!visited[i][j] && board[i][j]=='O'){
board[i][j]='X';
}
}
}
}
public void useme(char[][] board,int i,int j,boolean[][] visited){
if(test(board,i,j) && !visited[i][j] && board[i][j]=='O'){
visited[i][j]=true;
useme(board,i-1,j,visited);
useme(board,i+1,j,visited);
useme(board,i,j-1,visited);
useme(board,i,j+1,visited);
}
}
public boolean test(char[][] board,int i ,int j){
int row = board.length;
int col = board[0].length;
if(i<0 || i>=row ||j<0|| j>=col){
return false;
}
return true;
}
}
这个代码会 StackOverflow,把bfs的部分用queue改写就好。
相关文章推荐
- leetcode_question_130 Surrounded Regions
- 【LeetCode-面试算法经典-Java实现】【130-Surrounded Regions(环绕区域)】
- leetcode 130 Submission Details
- [C++]LeetCode: 130 Word Ladder (BFS)
- [Leetcode] 130, 131, 62
- [LeetCode] 130
- LeetCode130:Surrounded Regions
- leetcode:Union Find:Surrounded Regions(130)
- LeetCode130 Surrounded Regions
- leetcode[130] Surrounded Regions
- leetcode 130: Pascal's Triangle II
- LeetCode -130-Surrounded Regions
- [Leetcode 100] 130 Jump Game II
- LeetCode 130 Merge k Sorted Lists
- [LeetCode]题解(python):130-Surrounded Regions
- LeetCode: Surrounded Regions [130]
- Leetcode: 130. Surrounded Region(Week7, Medium)
- [LeetCode 130] - 围绕区域(Surrounded Regions)
- LeetCode 2016 37,65,212,84,130,218
- Java for LeetCode 130 Surrounded Regions