代码拉取完成,页面将自动刷新
思路:
经典岛屿变种
代码:
import java.util.*;
class Solution {
boolean visit[][];
boolean touch=false;
List<int[]>list;
public int[][] solve(int[][] grid) {
// Write your code here
int r=grid.length;
int c=grid[0].length;
visit=new boolean[r][c];
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
if(grid[i][j]==0||visit[i][j])continue;
touch=false;
list=new ArrayList<>();
dfs(grid,i,j);
if(!touch){
for(int A[]:list){
grid[A[0]][A[1]]=0;
}
}
}
}
return grid;
}
public void dfs(int grid[][],int i,int j){
if(i<0||j<0||i>=grid.length||j>=grid[0].length){
touch=true;
return;
}
if(visit[i][j])return;
if(grid[i][j]==0)return;
visit[i][j]=true;
list.add(new int[]{i,j});
dfs(grid,i+1,j);
dfs(grid,i-1,j);
dfs(grid,i,j+1);
dfs(grid,i,j-1);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。