給定兩個單詞(beginword 和 endword)和乙個字典,找到從 beginword 到 endword 的最短轉換序列的長度。轉換需遵循如下規則:
每次轉換只能改變乙個字母。
轉換過程中的中間單詞必須是字典中的單詞。
說明:如果不存在這樣的轉換序列,返回 0。
所有單詞具有相同的長度。
所有單詞只由小寫字母組成。
字典中不存在重複的單詞。
你可以假設 beginword 和 endword 是非空的,且二者不相同。
示例 1:
輸入:beginword = "hit",
endword = "cog",
wordlist = ["hot","dot","dog","lot","log","cog"]
輸出: 5
解釋: 乙個最短轉換序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog",
返回它的長度 5。
示例 2:
輸入:beginword = "hit"
endword = "cog"
wordlist = ["hot","dot","dog","lot","log"]
輸出: 0
解釋: endword "cog" 不在字典中,所以無法進行轉換。
1.寬度優先搜尋
2.之前用的queue來儲存每個單詞,發現會超時。
3.之後改用unordered_set來替代vector
4.用unordered_map來替代queue儲存每個單詞以及他們到起始節點的距離。
5.這樣就提高了查詢的速度 , 就不會超時了 , 執行時長380ms。
6.unordered_setwordset (wordlist.begin(),wordlist.end()); 將容器或者陣列中的元素加到雜湊表裡。
ac**:
class solution );
queueq;
q.push();
while(!q.empty())}}
}return 0;
}};
每日一題 力扣 計畫
98 驗證二叉搜尋樹 問題給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 1.節點的左子樹只包含小於當前節點的數。2.節點的右子樹只包含大於當前節點的數。3.所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例2 輸入 5 1 4...
力扣每日一題 6 14
1300 轉變陣列後最接近目標值的陣列和 給你乙個整數陣列 arr 和乙個目標值 target 請你返回乙個整數 value 使得將陣列中所有大於 value 的值變成 value 後,陣列的和最接近 target 最接近表示兩者之差的絕對值最小 如果有多種使得和最接近 target 的方案,請你返...
每日一題力扣48
給定乙個 n n 的二維矩陣 matrix 表示乙個影象。請你將影象順時針旋轉 90 度。你必須在 原地 旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要 使用另乙個矩陣來旋轉影象。正解 旋轉90度就是,先鏡面對稱,再轉置即可 class solution defrotate self,mat...