星际漫游是需要通行证的,塔子收集多年,希望来一次跨越群星的路程,去到一个叫做蓝星的星球,听说那里有一个二字游戏,非常好玩。
很不幸的是,塔子只有若干星球之间的通行证,为了尽快到达心心念念的蓝星,塔子决定找你帮忙规划一下线路。这里规定星际漫游的耗时与经历的星球数成正比。
规定,所有的星球都被编号,从1开始。
在这道题中,我们需要帮助塔子规划从起点星球到终点星球的最短路径,给定的路径由若干通行证定义。输入包括通行证的数量和起点、终点的编号,以及每个通行证的起止星球。输出应为塔子需要经过的星球数量(不包括起点),若无法到达终点,则返回 -1。我们可以使用广度优先搜索(BFS)算法来解决此问题,通过构建星球间的图结构,逐层探索可达星球,以找到最短路径或判断不可达。
朴素的bfs求最短路的题