一共两个题。笔试时先通读了两个题的题目。因为第二题有思路觉得简单就先写的第二题。结果20分钟写完代码,挑了30分钟bug,都没搞出来,最后坑在±号上。
根据记忆上题目:给你一个迷宫,包括一个起点‘S’和一个终点‘E’,‘#’表示障碍,不可到达的位置,‘.'表示可以到达的位置,另外你可以跳跃,跳跃的规则是从一个点跳到他中心对称的那个点上,最多跳跃5次,求从起点到达终点的最短路径长度。我清楚的记得,题目中描述的中心对称的含义是:点A(x,y) 中心对称的格子B(x1,y1) 满足x+x1=n+1且y+y1=m+1这个关系。
那不应该是x1=n+1-x且y1=m+1-y才符合题意吗。所以我的代码中就是这么做的。然而笔试后去牛客上逛了别人的思路,才知道,后面给的样例中他们的关系是x1=n-1-x;y1=m-1-y!竟然是减!
在笔试时,我用的dfs写的,如果我把加减号改过来,即使是思路对,也有可能超时,这是我dfs的代码:
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
/**
* Created by fangjiejie on 2020/3/23.
*/
public class Title2 {
public static int n;
public static int m;