題目描述:按螺旋順序(順時針)回傳 m×n 矩陣的所有元素。
解題思路:維護四個邊界:top、bottom、left、right。依序沿上邊向右、右邊向下、下邊向左、左邊向上各走一輪,每走完一邊就縮小對應邊界。重複直到邊界交叉。需注意單行或單列的情況(避免重複輸出)。
時間複雜度:O(m × n) — 每個元素恰好輸出一次。
空間複雜度:O(1) 額外空間(輸出結果不計)。
1. Initialize top=0, bottom=m-1, left=0, right=n-1 2. While top<=bottom and left<=right: a. Traverse right along top row, then top++ b. Traverse down along right col, then right-- c. If top<=bottom: traverse left along bottom row, then bottom-- d. If left<=right: traverse up along left col, then left++ 3. Return result
遞迴螺旋 O(mn):遞迴綁定邊界,提取外層再遞迴內層 — 邏輯簡潔但空間 O(mn)。
旋轉矩陣視角:逐層旋轉而非螺旋提取 — 邏輯類似但難以統一。