019.螺旋矩阵
54. 螺旋矩阵
给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:
1 |
|
示例 2:
1 |
|
提示:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 10
-100 <= matrix[i][j] <= 100
题解思路
该题目与 螺旋矩阵 2 的区别在于,这道题给出的矩阵不是个正方形矩阵,而有可能是长方形矩阵,因此就需要额外考虑长和宽,主要思路:
- 获取矩阵的行和矩阵的列
- 根据矩阵的行和列计算矩阵的 左右边界以及上下边界(方便我们在后序的循环中模拟时更容易操作矩阵)
规定循环不变量,下面的代码我们规定循环不变量遵循左闭右闭,以下面的示例1为例,左闭右闭就是说在遍历矩阵的其中一条边时,遍历到的左右边界先放入集合中,也就是说在遍历上边时,就要把1,2,3全部放入集合,遍历右边时放入6,9,遍历下边时放入8,遍历左边时放入7,4
严格按照循环不变量进行循环模拟,将遍历到的值放入结果集合,返回即可
题解代码
1 |
|
019.螺旋矩阵
http://example.com/2025/03/02/019-螺旋矩阵/