Spiral Matrix
Understand and solve the interview question "Spiral Matrix".
We'll cover the following...
Description
Given an m * n
matrix, you have to return all the matrix elements in spiral order. The spiral order
signifies traversing the matrix in clockwise order.
Let’s review the spiral
order below:
Coding exercise
defmodule Solution dodef spiral_order(_matrix) do# Write your code hereendend
Solution
To solve this problem, we will use a layer by layer approach. In this approach, we iterate over the outer layers’ elements in clockwise order, followed by the inner layer’s elements.
For each layer, we will start from the top left corner and iterate over the elements in that layer. We define the top-left coordinates, say (r1, c1)
and bottom-right coordinates, say (r2, c2)
.
As we explore the layers in clockwise order, we have to:
-
Iterate the
top
row,(r1, c)
, wherec
ranges fromc1
toc2
. -
Iterate the
right
side,(r, c2)
, wherer
ranges fromr1 + 1
...