原创 LRU Cache

LRU Cache 關鍵點在LRU Cache如何實現快速記錄和更新 最直觀的是每次遍歷搜索,刪除之並插到尾部 想要提高速度,可以用map(dict)這種查詢時間爲O(1)的作爲存儲,自定義一個節點類,包含next指針即可

原创 Text Justification

Text Justification 字符串操作,做好計數器和邊界條件即可

原创 N-Queens I,II, Trapping Rain Water

N-Queens I,II 簡單棧操作,注意簡化判斷即可 Trapping Rain Water 兩個指針從兩邊向中間移動,思路類似:Largest Rectangle in Histogram

原创 Longest Valid Parentheses

Longest Valid Parentheses 動態規劃 思路一(未實現): 從右端開始遍歷,尋找 '(' 到末尾所構成的最大長度,根據存儲的dp數組跳躍判斷 思路二(python實現): 類似思路一,只不過遍歷的時候不找全局最大,

原创 Palindrome Partitioning II

Palindrome Partitioning II 兩個dp記錄數組 首先一個二維數組記錄每一段是否是迴文,O(n^2)可完成 再一個數組,記錄長度爲1,2,3...n 的字符串需要幾次分割,該數組的每一項的計算都與其前面所有的數有關,

原创 Wildcard Matching

Wildcard Matching 字符串的模式匹配,類似正則 總體思想: 把模式串按照 * 分割成字串,如果匹配串中按順序分佈着這些字串,那麼就OK 本着這個思想實現的是:貪心算法 方法一,用字串比較的方法:class Solution

原创 Word Ladder II

Word Ladder II 思想同第一題,只是如何記錄的問題 如果暴力記錄(每次記錄全路徑),會出現MLE,內存越界 所以我們採用第一題的記錄方法,只記錄每一層出現的單詞,不記錄路徑 在找到end之後,再構造路徑 構造路徑時,就可以遍歷

原创 Binary Search Tree Iterator,Reverse Nodes in k-Group

Binary Search Tree Iterator 改 非遞歸中序遍歷 即可 Reverse Nodes in k-Group 簡單鏈表操作,注意鏈表的劃分 即可

原创 Largest Rectangle in Histogram

Largest Rectangle in Histogram 用一個棧,存儲遞增序列即可,而且不需要每一步算一次,只需要在pop的時候計算