54. Spiral Matrix
Given an m x n
matrix
, return all elements of the matrix
in spiral order.
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]
Constraints:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 10
-100 <= matrix[i][j] <= 100
# @lc code=start
using LeetCode
function spiral_order(matrix::Vector{Vector{Int}})::Vector{Int}
res = Int[]
while !isempty(matrix)
for each in popfirst!(matrix)
push!(res, each)
end
if !isempty(matrix) && !isempty(matrix[1])
for row in matrix
push!(res, pop!(row))
end
end
if !isempty(matrix)
for each in pop!(matrix)[end:-1:1]
push!(res, each)
end
end
if !isempty(matrix) && !isempty(matrix[1])
for row in matrix[end:-1:1]
push!(res, popfirst!(row))
end
end
end
return res
end
# @lc code=end
spiral_order (generic function with 1 method)
This page was generated using DemoCards.jl and Literate.jl.