第 1 章:必考基礎

這一章用來快速回想。先讀規則,再遮住右欄自己說出答案。

資料結構

結構核心規則常見操作
Stack(堆疊)LIFO,後進先出push / pop
Queue(佇列)FIFO,先進先出enqueue / dequeue
Linked list(鏈結串列)節點由指標連接已知節點後插入:O(1)
Tree(樹)連通而且沒有環n 個頂點有 n − 1 條邊
Hash table(雜湊表)key 對應儲存位置碰撞後須探查或鏈結

演算法與圖論

主題必須記住
Binary search(二分搜尋)資料必須已排序;時間是 O(log n)
Merge sort(合併排序)最壞 O(n log n);屬於穩定排序
Stable sort(穩定排序)相同鍵值在排序後仍保留原本相對次序
Dijkstra單一起點最短路;所有邊權重不可為負
Minimum spanning tree(最小生成樹)用最小總權重連通所有頂點
Topological order(拓撲排序)只適用於 DAG;答案不一定唯一

C++ 與系統基礎

項目規則
Recursion(遞迴)呼叫太深可造成 stack overflow(堆疊溢位)
x & (x - 1)清除正整數 x 最右邊的一個 1 bit
Little endian(小端序)最低位元組放在最低記憶體位址
pwd / cd / mkdir / ls顯示路徑/切換目錄/建立目錄/列出檔案
Compilation / interpretation編譯先產生目標碼;解釋器逐步執行

題目關鍵詞

字詞中文提示作答動作
NOT / EXCEPT不是/除了先劃掉正確敘述,再找例外
minimum最少找下界,再構造可行例子
maximum最多必須同時檢查所有限制
always必定一個反例已足以否定
possible可能找到一個可行構造便足夠
Built with LogoFlowershow