首页 > 小红书8.21笔试
头像
a大头哥哥
编辑于 2021-08-21 21:39
+ 关注

小红书8.21笔试

有大佬知道小红书第二题按下面这种思路这样写错在哪里嘛       小红书8.21笔试
  public class Main{
    public static int count = 0;
    public static void main(String[] args) {
        int n = 3;
        char[][] grid = {{'.','.','#'},{'.','.','#'},{'.','.','.'}};
        boolean[][] used = new boolean[n][n];
        int stuNum = 7;
        dfs(grid, 0, 0, used, 0, stuNum);
        System.out.println(count);
    }
    public static void dfs(char[][] grid, int i, int j, boolean[][] used, int curNum, int stuNum){
        if(!inArea(grid, i, j) || used[i][j])
            return;
        used[i][j] = true;
        if(grid[i][j] != '.')
            return;
        if(i == grid.length-1 && (curNum+1) == stuNum){
            count++;
            return;
        }
        dfs(grid, i, j+1, used, curNum+1, stuNum);
        dfs(grid, i+1, j, used, curNum+1, stuNum);
        dfs(grid, i, j-1, used, curNum+1, stuNum);
        dfs(grid, i-1, j, used, curNum+1, stuNum);
        used[i][j] = false;
    }
    public static boolean  inArea(char[][] grid, int i, int j){
        return i>=0 && i < grid.length && j >= 0 && j < grid[0].length;
    }
  }


全部评论

(6) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐