0%
题解方法
- 广度优先搜索
- 深度优先搜索
广度优先搜索
经典 BFS深度优先搜索
经典 DFS核心代码
广度优先搜索
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public int movingCount(int m, int n, int k) { this.k = k; boolean[][] visited = new boolean[m][n]; int count = 0; Queue<int[]> queue = new LinkedList<>(); queue.add(new int[]{0, 0}); while (!queue.isEmpty()) { int[] cur = queue.poll(); int i = cur[0], j = cur[1]; if (i < 0 || i >= m || j < 0 || j >= n || visited[i][j] || !isAccessed(i, j)) { continue; } visited[i][j] = true; count++; queue.add(new int[]{i + 1, j}); queue.add(new int[]{i, j + 1}); } return count; }
|
深度优先搜索
1 2 3 4 5 6 7 8 9 10
| private void search(int i, int j) { if (i < 0 || i >= visited.length || j < 0 || j >= visited[0].length || visited[i][j] || !isAccessed(i, j)) { return; } visited[i][j] = true; count++; search(i + 1, j); search(i, j + 1); }
|
题目来源
- 剑指 Offer 13. 机器人的运动范围 - 力扣(LeetCode)