Given an m x n matrix, return all elements of the matrix in spiral order (clockwise from the top-left corner).
[ 1, 2, 3 ] [ 4, 5, 6 ] [ 7, 8, 9 ]
Input: matrix = [[1,2,3],[4,5,6],[7,8,9]] Output: [1,2,3,6,9,8,7,4,5] Explanation: Traverse right across the top row, down the right column, left across the bottom row, then up the left column, and spiral inward.
[ 1, 2, 3, 4 ] [ 5, 6, 7, 8 ] [ 9, 10, 11, 12 ]
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: Right along row 0, down column 3, left along row 2, up column 0, then right along row 1.
m == matrix.lengthn == matrix[i].length1 <= m, n <= 10-100 <= matrix[i][j] <= 1003x3 matrix