题目
思路讲解
这道题主要用的是BFS(广度优先搜索),对电梯路径进行广搜,最后得出答案
广搜,全称广度优先搜索,相较dfs来讲,它更像是一个涟漪.
啥意思嘞?画一个图你就懂了
它从起点开始,一圈一圈的盲目搜索,最终找到答案 你看,那一圈一圈的,像不像一圈涟漪?
……
正是因为他搜索的特点,所以只要找到了目标,就一定是最短路径(因为他是一圈一圈扩散的,不可能从另外一个地方绕过去比第一次找到的路径还要短)。
代码实现
#include <bits/stdc++.h>
using namespace std;
int n,a,b,k[210],v[210],cont;//v存储电梯路径
queue <int> q;//队列
int dx[2]={1,-1}; //偏移量
int search(int a,int b){
q.push(a);
while(!q.empty()){
int tmp=q.front();
q.pop();
if(tmp==b) return v[tmp]-1; //