0
点赞
收藏
分享

微信扫一扫

5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯

其生 2022-07-27 阅读 65


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_02


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_03


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_04


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_05


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_06


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_07


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_08

class Solution {
public:
int ladderLength(string beginWord, string endWord, vector<string>& wordList) {
unordered_set<string> dict(wordList.begin(), wordList.end());
if(!dict.count(endWord)) return 0;
int res=1,n=beginWord.size();
unordered_set<string> q1{{beginWord}}, q2{{endWord}};
dict.erase(beginWord);
while(!q1.empty() && !q2.empty()){
++res;
unordered_set<string> q;
for(const string& w:q1){
string cur = w;
for(int i=0;i<n;++i){
char old=cur[i];
for(char c='a'; c<='z'; ++c){
cur[i]=c;
if(q2.count(cur)){
return res;
} else if(dict.count(cur)){
q.insert(cur);
dict.erase(cur);
}
}
cur[i] = old;
}
}
swap(q,q1);
if(q1.size() > q2.size()){
swap(q1, q2);
}
}
return 0;
}
};

5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_09


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_10


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_11


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_12


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_13


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_14


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_15


5道经典深度优先搜索与宽度优先搜索相关题目-词语阶梯_leetcode_16


举报

相关推荐

BFS宽度优先搜索

深度优先搜索

0 条评论