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

机器人的运动范围

http://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8

import java.util.*; public class Solution {

//和计算岛屿最大面积的思路是一样的,建立一个二维矩阵,里面的值就是0和1
public int area = 0;
public int movingCount(int threshold, int rows, int cols) {
    String iString;
    String jString;
    char[] iChars;
    char[] jChars;
    int iSum = 0;
    int jSum = 0;
    int[][] array = new int[rows][cols];
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[0].length; j++) {
            iString = i+"";
            jString = j+"";
            iChars = iString.toCharArray();
            jChars = jString.toCharArray();
            for (char iChar : iChars) {
                iSum += (iChar - 48);
            }
            for (char jChar : jChars) {
                jSum += (jChar-48);
            }
            if(iSum+jSum<=threshold){
                array[i][j]=1;
            } else {
                array[i][j]=0;
            }
            iSum=0;
            jSum=0;
        }
    }
    dfs(array,0,0);
    return area;
}

public void dfs(int[][] grid, int i, int j) {
    if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] == 0)
        return;
    area++;
    grid[i][j] = 0;
    dfs(grid, i - 1, j);
    dfs(grid, i + 1, j);
    dfs(grid, i, j + 1);
    dfs(grid, i, j - 1);
}

}

全部评论

相关推荐

04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务