zoukankan      html  css  js  c++  java
  • leetcode 126 Word Ladder II

    参考:https://www.cnblogs.com/grandyang/p/4548184.html

    基本思想是广度优先搜索,level表示当前已经放到路径中的word总数;每一次while循环,将当前这条路径(当前这个vector<string>)的下一个word的所有情况放入队列中,直到遇到了endWord;遇到了endWord,说明这一层(这个level)就是路径最短的一层,到了下一层(t.size()>level,实际上t.size()=level+1)时,保存的结果vector<vector<string>> 不为空,就可以停止搜索。

    class Solution {
    public:
        vector<vector<string>> findLadders(string beginWord, string endWord, vector<string>& wordList) {
            unordered_set<string> dict(wordList.begin(),wordList.end()),words; //dict为所有wordList,set搜索更快;words为已经添加到路径中的word
            queue<vector<string>> q;
            vector<vector<string>> re;
            vector<string> vec{beginWord};
            q.push(vec);
            int level=1;//当前队列q中的vector<string>的大小
            while(!q.emtpy()) {
                auto t=q.front();q.pop();
                if(t.size()>level) {
                    for(auto& word:words) dict.erase(word);
                    words.clear();
                    level=t.size();
                    if(!re.empty()) break;
                }
                string Last=t.back();//back()返回的是引用
                for(int i=0;i<Last.size();++i) {
                    string newLast=Last;
                    for(char ch='a';ch<='z';++ch) {
                        newLast[i]=ch;
                        if(!dict.count(newLast)) continue;
                        t.push_back(newLast);
                        words.insert(newLast);
                        if(newLast==endWord) {
                            re.push_back(t);
                        }
                        else q.push(t);
                        t.pop_back();
                    }
                }
            }
            return re;
        }
    };
  • 相关阅读:
    数组乘积更新
    win向linux传文件
    遇到autoreconf: not found
    python thread
    aptitude
    virtualbox安装ubuntu出现“The system is running in low-graphics mode”
    webform用户控件
    LinQ to SQL
    表单验证
    文件上传
  • 原文地址:https://www.cnblogs.com/LiuQiujie/p/12511490.html
Copyright © 2011-2022 走看看