题解 | #机器人的运动范围#
机器人的运动范围
http://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8
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; } }