迷宫
题目要求
P1605题目链接
我的思路还比较容易理解,但确实开的数组太多了(最终代码)。 我想开一个递归的DFS搜索,对越界情况进行淘汰 (话说这能算剪枝吗) ,再就是只允许在没被标记为已遍历的地方行进。 DFS用好了确实能搜出结果,但过程中遇到过一个大问题,下面就对此说明。
原先的代码是这样的:
import java.util.Scanner;
public class Main {
private static int x1, y1, x2, y2;
private static int dfs(int x, int y, boolean[][] graph) {
if (x x2 || y y2 || graph[x][y]) {
return 0;
} else if (x == x2 && y == y2) {
return 1;
}
graph[x][y] = true;
return dfs(x-1, y, graph) + dfs(x+1, y, graph) + dfs(x, y-1, graph) + dfs(x, y+1, graph);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt(), n = scanner.nextInt(), num = scanner.nextInt();
x1 = scanner.nextInt();
y1 = scanner.nextInt();
x2 = scanner.nextInt();
y2 = scanner.nextInt();
boolean[][] graph = new boolean[m+1][n+1];
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?