[Leetcode] Spiral Matrix

PHIL
Coding Memo
Published in
May 11, 2022

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

--

--

PHIL
Coding Memo

Jotting the ideas down in codes or articles