Update 29. 顺时针打印矩阵.md

调整顺时针打印矩阵的解题思路描述,精简分层处理逻辑,并补充单行与单列打印时的边界条件说明。
This commit is contained in:
CyC2018
2026-10-30 20:18:01 +08:00
parent 4890857278
commit 8387e09bf6
+3 -1
View File
@@ -14,7 +14,9 @@
## 解题思路
一层一层从外到里打印,观察可知每一层打印都有相同的处理步骤,唯一不同的是上下左右的边界不同了。因此使用四个变量 r1, r2, c1, c2 分别存储上下左右边界值,从而定义当前最外层。打印当前最外层的顺序:从左到右打印最上一行-\>从上到下打印最右一行-\>从右到左打印最下一行-\>从下到上打印最左一行。应当注意只有在 r1 != r2 时才打印最下一行,也就是在当前最外层的行数大于 1 时才打印最下一行,这是因为当前最外层只有一行时,继续打印最下一行,会导致重复打印。打印最左一行也要做同样处理。
一层一层从外到里打印,每一层的处理步骤相同,只是上下左右的边界不同。因此使用四个变量 r1, r2, c1, c2 分别存储上下左右边界值,从而定义当前最外层。打印当前最外层的顺序:从左到右打印最上一行-\>从上到下打印最右一行-\>从右到左打印最下一行-\>从下到上打印最左一行,打印完把四个边界各向内收缩一格。
需要注意的是,只有在 r1 != r2 时才打印最下一行:当前最外层只有一行时,最下一行就是刚打印过的最上一行,再打印会重复。同理,只有在 c1 != c2 时才打印最左一列。
<div align="center"> <img src="pics/offer29-spiral-layers.png" width="620px"/> </div><br>