#323 Spiral Matrix

medium
javascript
blind75
matrix

Given an m x n matrix, return all elements in spiral order (clockwise from outside to inside).

Rules:

  • Start from top-left corner
  • Move in clockwise direction
  • Visit each element exactly once
  • Return elements in order visited

Constraints:

  • 1 ≤ matrix.length, matrix[i].length ≤ 10
  • -100 ≤ matrix[i][j] ≤ 100

Examples:

// Example 1: 2x2 matrix

console.log(spiralOrder([[1,2],[3,4]]));
// Output: [1,2,4,3]


// Example 2: 3x3 matrix

console.log(spiralOrder([[1,2,3],[4,5,6],[7,8,9]]));
// Output: [1,2,3,6,9,8,7,4,5]


// Example 3: 3x4 matrix

console.log(spiralOrder([[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]