苏州微网站制作,海口网站建设多少钱,中国最大的摄影网站,视频网站的链接怎么做的一、问题描述 给定一个二维数组。 数组只有一个元素是1#xff0c;是起点数组只有一个元素是2#xff0c;是终点数组中的0是必须经过的地方数组中的-1是障碍不可通过从起始点到终点一共有多少路径#xff1f; 二、思路 DFS 三、Code 1 package algorithm;2 3 /**4 * Create…一、问题描述 给定一个二维数组。 数组只有一个元素是1是起点数组只有一个元素是2是终点数组中的0是必须经过的地方数组中的-1是障碍不可通过从起始点到终点一共有多少路径 二、思路 DFS 三、Code 1 package algorithm;2 3 /**4 * Created by adrian.wu on 2019/2/27.5 */6 public class UniquePathIII {7 private int sr, sc, er, ec, res, empty 0;8 public int uniquePathIII(int[][] grid) {9 for (int i 0; i grid.length; i) {
10 for (int j 0; j grid[0].length; j) {
11 if (grid[i][j] 0) empty;
12 else if (grid[i][j] 1) {
13 sr i;
14 sc j;
15 }
16 else if (grid[i][j] 2) {
17 er i;
18 ec j;
19 empty;
20 }
21 }
22 }
23
24 dfs(grid, sr, sc);
25 return res;
26 }
27
28 private void dfs(int[][] grid, int i, int j) {
29 if (!validRange(grid, i, j)) return;
30 if (i er j ec empty 0) {
31 res;
32 return;
33 }
34 grid[i][j] -2;
35 empty--;
36 dfs(grid, i 1, j);
37 dfs(grid, i - 1, j);
38 dfs(grid, i, j 1);
39 dfs(grid, i, j - 1);
40 grid[i][j] 0;
41 empty;
42 }
43
44 private boolean validRange(int[][] grid, int i, int j) {
45 return i 0 i grid.length j 0 j grid[0].length grid[i][j] 0;
46 }
47
48 } 转载于:https://www.cnblogs.com/ylxn/p/10441940.html