In-Place Techniques - Structure vs Operations

in-place 演算法:只用"常數級額外空間"來完成工作,主要直接修改原本的輸入資料結構。

資料結構 \ 操作 刪除 過濾 壓縮 重排 Partition 反轉 標記(index) 合併 狀態壓縮
Array ✅ overwrite ✅ two pointers ✅ run-length ✅ sort / permute ✅ Dutch flag ✅ swap ✅ index as hash ⚠️(從尾巴) ✅ rolling
String ⚠️(通常轉 char[]) ✅ skip invalid ✅ encoding ✅ word reorder ✅ reverse
Linked List ✅ pointer skip ✅ pointer filter ✅ reorder list ✅ reverse ✅ merge lists
Binary Tree ⚠️(需重接) ⚠️(結構轉換) ⚠️(Morris)

LeetCode 對應題號:

資料結構 \ 操作 刪除 過濾 壓縮 重排 Partition 反轉 標記(index) 合併 狀態壓縮
Array 27, 26, 80 283 443 31, 905, 922 75 344, 189, 48 41, 448, 442, 73 88 198, 213
String 1047 125 443 151 344, 345, 541, 557, 917, 151
Linked List 203 82, 83 143, 24 206, 92, 25 21, 23
Binary Tree 450 226 94(Morris)