From 8387e09bf6a99e931a212b0fd261e723a75bce83 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:18:01 +0800 Subject: [PATCH] =?UTF-8?q?Update=2029.=20=E9=A1=BA=E6=97=B6=E9=92=88?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E7=9F=A9=E9=98=B5.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整顺时针打印矩阵的解题思路描述,精简分层处理逻辑,并补充单行与单列打印时的边界条件说明。 --- notes/29. 顺时针打印矩阵.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/notes/29. 顺时针打印矩阵.md b/notes/29. 顺时针打印矩阵.md index ba337198..98da3c5e 100644 --- a/notes/29. 顺时针打印矩阵.md +++ b/notes/29. 顺时针打印矩阵.md @@ -14,7 +14,9 @@ ## 解题思路 -一层一层从外到里打印,观察可知每一层打印都有相同的处理步骤,唯一不同的是上下左右的边界不同了。因此使用四个变量 r1, r2, c1, c2 分别存储上下左右边界值,从而定义当前最外层。打印当前最外层的顺序:从左到右打印最上一行-\>从上到下打印最右一行-\>从右到左打印最下一行-\>从下到上打印最左一行。应当注意只有在 r1 != r2 时才打印最下一行,也就是在当前最外层的行数大于 1 时才打印最下一行,这是因为当前最外层只有一行时,继续打印最下一行,会导致重复打印。打印最左一行也要做同样处理。 +一层一层从外到里打印,每一层的处理步骤相同,只是上下左右的边界不同。因此使用四个变量 r1, r2, c1, c2 分别存储上下左右边界值,从而定义当前最外层。打印当前最外层的顺序:从左到右打印最上一行-\>从上到下打印最右一行-\>从右到左打印最下一行-\>从下到上打印最左一行,打印完把四个边界各向内收缩一格。 + +需要注意的是,只有在 r1 != r2 时才打印最下一行:当前最外层只有一行时,最下一行就是刚打印过的最上一行,再打印会重复。同理,只有在 c1 != c2 时才打印最左一列。