题解 | #机器人的运动范围#

机器人的运动范围

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;
    }
}
全部评论

相关推荐

01-16 18:34
四川大学 Java
欢迎加入AI:没有啥稳定不稳定,一切都源于业务快速发展还是收缩。我当年一开始去的央企,业务不赚钱,也贼卷,慢慢就开始优化了。。。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务