LeetCode 54. 螺旋矩阵

54. 螺旋矩阵

解题思路

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
if(matrix.length == 0) {
return new ArrayList<Integer>();
}
int m = matrix.length;
int n = matrix[0].length;
List<Integer> res = new ArrayList<>(m * n);

int top = 0, bottom = m - 1;
int left = 0, right = n - 1;

while(top <= bottom && left <= right) {
for(int i = left; i <= right; i ++) {
res.add(matrix[top][i]);
}
top++;

for(int i = top; i <= bottom; i ++) {
res.add(matrix[i][right]);
}
right --;

if(top <= bottom) {
for(int i = right; i >= left; i --) {
res.add(matrix[bottom][i]);
}
bottom --;
}

if(left <= right) {
for(int i = bottom; i >= top; i --) {
res.add(matrix[i][left]);
}
left ++;
}
}
return res;
}
}

LeetCode 54. 螺旋矩阵
https://sowink.cn/2026/02/08/LeetCode-54-螺旋矩阵/
作者
Xurx
发布于
2026年2月8日
许可协议