https://leetcode-cn.com/problems/open-the-lock/添加链接描述
思路:显然题目是另外一种类型的最短路问题,最优解可用 b f s bfs bfs解决。
class Solution {
public:
int openLock(vector<string>& deadends, string target) {
unordered_map<string,bool> vis;
for(const string& s:deadends)
vis[s]=1;
int ans=-1;
using pr=pair<string,int>;
queue<pr> q;
if(vis.find("0000")!=vis.end())
return -1;
q.push(pr("0000",0));
vis["0000"]=1;
while(!q.empty())
{
pr f=q