【LeetCode & 剑指offer刷题】矩阵题2:29 顺时针打印矩阵(54. Spiral Matrix)(系列)
【LeetCode & 剑指offer 刷题笔记】目录(持续更新中...)
54. Spiral Matrix
Given a matrix of
m x
n elements (
m rows,
n columns), return all elements of the matrix in spiral order.
Example 1:
Input:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
Output:
[1,2,3,6,9,8,7,4,5]
Example 2:
Input:
[
[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]
//以螺旋顺序输出矩阵元素(顺时针)
/*
确定某一层矩形对角点坐标,(begin,begin)、(rowend,colend)
扫描顺序如下:
-----→
↑ |
| |
| |
←----↓
*/
class
Solution
{
public
:
vector
<
int
>
spiralOrder
(
vector
<
vector
<
int
>>&
a
)
{
vector
<
int
>
result
;
if
(
a
.
empty
())
return
result
;
int
begin
=
0
;
//起始点坐标
int
rowend
=
a
.
size
()
-
1
;
//对角点坐标
int
colend
=
a
[
0
].
size
()
-