简单深度优先遍历oj
思路:四个方向上分别试探,满足条件就修改颜色,不满足return
class Solution {
public int[][] floodFill(int[][] image, int sr, int sc, int newColor) {
int cur = image[sr][sc];
if(cur != newColor) {
dfs(sr,sc,image,cur,newColor);
}
return image;
}
public void dfs(int sr,int sc,int[][] image,int cur,int newColor) {
if(sr < 0 || sc < 0 || sr == image.length || sc == image[0].length || image[sr][sc] != cur) {
return;
}else {
image[sr][sc] = newColor;
dfs(sr - 1,sc,image,cur,newColor);
dfs(sr + 1,sc,image,cur,newColor);
dfs(sr,sc - 1,image,cur,newColor);
dfs(sr,sc + 1,image,cur,newColor);
}
}
}
思路:从起点开始搜索,每搜索到一个1就将其置为0,当本次搜索结束时,说明找到一个岛屿
class Solution {
public int numIslands(char[][] grid) {
if(grid.length == 0) {
return 0