Spiral Matrix

Medium~25 min

Given an m x n matrix, return all elements of the matrix in spiral order.

Spiral order means traversing the matrix clockwise from the outermost layer inward: move right across the top row, down the right column, left across the bottom row, and up the left column. Then repeat for the next inner layer until all elements have been visited.

Examples

Example 1
Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [1,2,3,6,9,8,7,4,5]
Explanation: Traverse the outer layer clockwise: right (1,2,3), down (6,9), left (8,7), up (4). Then the inner layer: (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]
Explanation: Outer layer: right (1,2,3,4), down (8,12), left (11,10,9), up (5). Inner layer: right (6,7).

Constraints

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 10
  • -100 <= matrix[i][j] <= 100
  • Expected time complexity: O(m × n)
Code
Ctrl+EnterRun|Ctrl+⇧+EnterSubmit
Output

Run your code to see results

Use Cmd+Enter to run