JZ12 矩阵中的路径
1 /* DFS */ 2 public class JZ12_1 3 { 4 public static boolean[][] vis; 5 public static int[] dx = new int[]{-1, 1, 0, 0}; 6 public static int[] dy = new int[]{0, 0, -1, 1}; 7 8 public static boolean hasPath(char[][] matrix, String word) 9 { 10 int m = matrix.length, n = matrix[0].length; 11 vis = new boolean[m][n]; 12 for (int i = 0; i < m; i++) 13 for (int j = 0; j < n; j++) 14 if (dfs(matrix, word, i, j, 0)) return true; 15 return false; 16 } 17 18 public static boolean dfs(char[][] matrix, String word, int curX, int curY, int idx) 19 { 20 int m = matrix.length, n = matrix[0].length, nextX = -1, nextY = -1; 21 boolean res = false; 22 if (matrix[curX][curY] != word.charAt(idx)) return false; 23 if (idx == word.length() - 1) return true; 24 vis[curX][curY] = true; 25 for (int i = 0; i < 4; i++) 26 { 27 nextX = curX + dx[i]; 28 nextY = curY + dy[i]; 29 if (nextX < 0 || nextX >= m || nextY < 0 || nextY >= n || vis[nextX][nextY]) 30 continue; 31 res = res || dfs(matrix, word, nextX, nextY, idx + 1); 32 } 33 vis[curX][curY] = false; 34 return res; 35 } 36 }
JZ13 机器人的运动范围
1 /* DFS */ 2 public class JZ13_1 3 { 4 public static boolean[][] vis; 5 public static int[] dx = new int[]{-1, 1, 0, 0}; 6 public static int[] dy = new int[]{0, 0, -1, 1}; 7 8 public static int movingCount(int threshold, int rows, int cols) 9 { 10 vis = new boolean[rows][cols]; 11 return dfs(threshold, rows, cols, 0, 0); 12 } 13 14 public static int dfs(int threshold, int m, int n, int curX, int curY) 15 { 16 int nextX = -1, nextY = -1, res = 1; 17 vis[curX][curY] = true; 18 for (int i = 0; i < 4; i++) 19 { 20 nextX = curX + dx[i]; 21 nextY = curY + dy[i]; 22 if (nextX < 0 || nextX >= m || nextY < 0 || nextY >= n || vis[nextX][nextY] || cal(nextX) + cal(nextY) > threshold) 23 continue; 24 res += dfs(threshold, m, n, nextX, nextY); 25 } 26 return res; 27 } 28 29 public static int cal(int nums) 30 { 31 int res = 0; 32 while (nums != 0) 33 { 34 res += nums % 10; 35 nums /= 10; 36 } 37 return res; 38 } 39 }标签:offer,int,res,nextY,static,回溯,nextX,public From: https://www.cnblogs.com/VividBinGo/p/17706459.html