From 671714fc4736f857977fdb355079bc1d7140ca44 Mon Sep 17 00:00:00 2001 From: Lina Date: Wed, 24 Jan 2024 21:23:21 +0000 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=85=A7=E8=A7=A3=E9=A2=98=E6=80=9D?= =?UTF-8?q?=E8=B7=AF=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E5=8F=8A=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0059.螺旋矩阵II.md | 57 +++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/problems/0059.螺旋矩阵II.md b/problems/0059.螺旋矩阵II.md index 58378ffc..a34af5e3 100644 --- a/problems/0059.螺旋矩阵II.md +++ b/problems/0059.螺旋矩阵II.md @@ -138,42 +138,51 @@ public: ```Java class Solution { public int[][] generateMatrix(int n) { - int loop = 0; // 控制循环次数 - int[][] res = new int[n][n]; - int start = 0; // 每次循环的开始点(start, start) - int count = 1; // 定义填充数字 - int i, j; + int[][] nums = new int[n][n]; + int startX = 0, startY = 0; // 每一圈的起始点 + int offset = 1; + int count = 1; // 矩阵中需要填写的数字 + int loop = 1; // 记录当前的圈数 + int i, j; // j 代表列, i 代表行; - while (loop++ < n / 2) { // 判断边界后,loop从1开始 - // 模拟上侧从左到右 - for (j = start; j < n - loop; j++) { - res[start][j] = count++; + while (loop <= n / 2) { + + // 顶部 + // 左闭右开,所以判断循环结束时, j 不能等于 n - offset + for (j = startY; j < n - offset; j++) { + nums[startX][j] = count++; } - // 模拟右侧从上到下 - for (i = start; i < n - loop; i++) { - res[i][j] = count++; + // 右列 + // 左闭右开,所以判断循环结束时, i 不能等于 n - offset + for (i = startX; i < n - offset; i++) { + nums[i][j] = count++; } - // 模拟下侧从右到左 - for (; j >= loop; j--) { - res[i][j] = count++; + // 底部 + // 左闭右开,所以判断循环结束时, j != startY + for (; j > startY; j--) { + nums[i][j] = count++; } - // 模拟左侧从下到上 - for (; i >= loop; i--) { - res[i][j] = count++; + // 左列 + // 左闭右开,所以判断循环结束时, i != startX + for (; i > startX; i--) { + nums[i][j] = count++; } - start++; + startX++; + startY++; + offset++; + loop++; } - - if (n % 2 == 1) { - res[start][start] = count; + if (n % 2 == 1) { // n 为奇数时,单独处理矩阵中心的值 + nums[startX][startY] = count; } - - return res; + return nums; } } + + ``` ### python3: