前往
大廳
主題

LeetCode - 0885. Spiral Matrix III 解題心得

Not In My Back Yard | 2024-05-02 12:00:11 | 巴幣 0 | 人氣 37

題目連結:


題目意譯:
你開始於一個大小為 rows × cols 的網格之其中一個格子 (rStart, cStart) 上並面向東。西北方位的角落是網格中的第一列第一行,而東南方位的角落則是最後一列最後一行。

你將會以順時針方向來走完這個網格中的每一格。而每當你走出網格的邊界後,你將會繼續相同的方式來走(可能會在某個時間點回到網格中)。最終,你將會走過網格中 rows × cols 的每一格。

回傳一個座標陣列,其代表著以你走過網格中的格子之順序之每一格的位置。

限制:
1 ≦ rows, cols ≦ 100
0 ≦ rStart < rows
0 ≦ cStart < cols



範例測資:
範例 1:
輸入: rows = 1, cols = 4, rStart = 0, cStart = 0
輸出: [[0,0],[0,1],[0,2],[0,3]]

範例 2:
輸入: rows = 5, cols = 6, rStart = 1, cStart = 4
輸出: [[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3],[0,4],[0,5],[3,5],[3,4],[3,3],[3,2],[2,2],[1,2],[0,2],[4,5],[4,4],[4,3],[4,2],[4,1],[3,1],[2,1],[1,1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]


解題思維:
基本上跟這題相當類似。就只是改一下起始位置、注意走出網格邊界外還是要繼續走直到走完所有格子,並且每一次改變方向時的位移量不是變少而是變多。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作