From 984936e1f4442d8161dfd36bcd2423678430ef84 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Wed, 28 Oct 2026 13:45:04 +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 | 44 ++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/notes/29. 顺时针打印矩阵.md b/notes/29. 顺时针打印矩阵.md index 41c05939..e4d219dd 100644 --- a/notes/29. 顺时针打印矩阵.md +++ b/notes/29. 顺时针打印矩阵.md @@ -2,7 +2,7 @@ ## 题目链接 -[牛客网](https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a?tpId=13&tqId=11172&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) +[Leetcode](https://leetcode.cn/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/) ## 题目描述 @@ -19,25 +19,39 @@

```java -public ArrayList printMatrix(int[][] matrix) { - ArrayList ret = new ArrayList<>(); - int r1 = 0, r2 = matrix.length - 1, c1 = 0, c2 = matrix[0].length - 1; +public int[] spiralArray(int[][] array) { + if (array == null || array.length == 0 || array[0].length == 0) { + return new int[0]; + } + int m = array.length, n = array[0].length; + int[] ret = new int[m * n]; + int idx = 0; + int r1 = 0, r2 = m - 1, c1 = 0, c2 = n - 1; while (r1 <= r2 && c1 <= c2) { // 上 - for (int i = c1; i <= c2; i++) - ret.add(matrix[r1][i]); + for (int i = c1; i <= c2; i++) { + ret[idx++] = array[r1][i]; + } // 右 - for (int i = r1 + 1; i <= r2; i++) - ret.add(matrix[i][c2]); - if (r1 != r2) + for (int i = r1 + 1; i <= r2; i++) { + ret[idx++] = array[i][c2]; + } + if (r1 != r2) { // 下 - for (int i = c2 - 1; i >= c1; i--) - ret.add(matrix[r2][i]); - if (c1 != c2) + for (int i = c2 - 1; i >= c1; i--) { + ret[idx++] = array[r2][i]; + } + } + if (c1 != c2) { // 左 - for (int i = r2 - 1; i > r1; i--) - ret.add(matrix[i][c1]); - r1++; r2--; c1++; c2--; + for (int i = r2 - 1; i > r1; i--) { + ret[idx++] = array[i][c1]; + } + } + r1++; + r2--; + c1++; + c2--; } return ret; }