第 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 | 可能 | 找到一個可行構造便足夠 |