1.思路
将能走到的位置置1,不能走到的位置置0,求[0,0]所在的岛屿面积
2.实现
public class Solution {
public static int movingCount(int threshold, int rows, int cols) {
int[][] grid=new int[rows][cols];
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
if(getSum(i,j)<=threshold){
grid[i][j]=1;
}else{
grid[i][j]=0;
}
}
}
return area(grid,0,0);
}
public static int getSum(int i,int j){
int sum=0;
String iStr=i+"";
String jStr=j+"";
for(char c:iStr.toCharArray()){
sum+=(c-'0');
}
for(char c:jStr.toCharArray()){
sum+=(c-'0');
}
return sum;
}
public static int area(int[][] grid,int i,int j){
if(i>=0&&i<grid.length&&j>=0&&j<grid[i].length){
if(grid[i][j]==0){
return 0;
}else{
grid[i][j]=0;
return 1+area(grid,i+1,j)+area(grid,i-1,j)+area(grid,i,j+1)+area(grid,i,j-1);
}
}
return 0;
}
}

京公网安备 11010502036488号