13.9 旋轉與翻轉
旋轉和翻轉都是「每一格搬到新位置」,關鍵只有一條座標公式。拿 R \times C 的矩陣 A 來說:
| 操作 | 舊圖 (i, j) 搬到 | 新圖大小 | 程式 |
|---|---|---|---|
| 上下翻轉 | (R - 1 - i,\ j) | R \times C | reverse(A.begin(), A.end());(整列對調) |
| 順時針轉 90^\circ | (j,\ R - 1 - i) | C \times R | 新開一張 B(C, vector<int>(R)),B[j][R-1-i] = A[i][j] |
| 逆時針轉 90^\circ | (C - 1 - j,\ i) | C \times R | 把上一條反過來讀:B[i][j] = A[j][C-1-i] |