72. Edit Distance
在解此題時,我們要先觀察 word1 如何變成 word2。以 Example1 為例,左下圖列出 “horse” 轉變成 “ros” 的 distance。表中,縱軸表示 “horse”,而橫軸表示 “ros”。
1048. Longest String Chain
此題中,wordA 是 wordB 的 predecessor 指只要插入一個 letter 到 wordA,那就會使得它和 wordB 一樣。然而,插入一個 letter 到一個地方,就要考慮 26 種字母。這使得整體的複雜度上升。
Priority Queue & Heap
Priority queue 是一個很好用的 data structure。它可以在常數時間內提供最大或最小值。在了解它之前,我們要先了解另一個 data structure 叫 heap。因為 priority queue 常常會用 heap 來實作。
Binary Search Tree
二元搜尋樹(Binary search tree, BST)是一種二元樹(binary tree)。它提供了一些有用操作,包含 search、insert、delete、minimum、maximum、successor 和 predecessor。
1105. Filling Bookcase Shelves
此題要求解的是,在將所有的書放進書櫃後,計算出最小可能的書櫃高度。每一層可以放一本或多本書,只要總書寬不要超過 shelfWidth。
39. Combination Sum
此題要我們列出所有可能的組合,所以我們可能用 backtracking 來找。但是,我們必須避免找到相同的組合。當兩個組合裡的數字和個數都依一樣,但順序不一樣時,他們依然是相同的組合。
22. Generate Parentheses
此題要我們列出所有括弧的可能組合,因此我們可以用 backtracking 來解。雖然 backtracking 可以找出所有的組合,但是有些組合是不合法的。