[Leetcode] Spiral Matrix
Traverse the matrix with deliberate design.
Description
Given an m x n
matrix
, return all elements of the matrix
in spiral order.
Examples
Example 1:
Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [1,2,3,6,9,8,7,4,5]
Example 2:
Input: matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Output: [1,2,3,4,8,12,11,10,9,5,6,7]
Solution
The logic is actually simple. Traverse as the following: to east, to south, to west, to north. The critical design is shifting the border along the traversal. Then, when traversal of four direction completes, restart the traversal. This time the traversal starts at a relative inner position as the border is shifted. Repeat the traversal until the border collides, aka south border>north border or west border>east border, meaning every grid is traversed.
- code
ref: https://blog.csdn.net/fuxuemingzhu/article/details/79541501