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

机器人的运动范围

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

相关推荐

投递长鑫存储等公司8个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
自由水:笑死了,敢这么面试不敢让别人说
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务