54. 螺旋矩阵java
时间: 2025-01-17 19:59:44 浏览: 48
### Java 实现螺旋矩阵
为了实现一个能够按照顺时针方向遍历并打印出矩形数组中所有元素的功能,在Java中有多种方法可以达成这一目标。下面提供了一种基于边界控制的方法来完成此操作[^1]。
#### 方法概述
该方法通过定义四个变量分别表示当前处理区域的上界、下界、左界以及右界,随着每一圈数据读取完毕后调整这些边界的数值从而缩小包围范围直至整个矩阵被完全访问过为止。
#### 示例代码
以下是具体的Java程序示例:
```java
public class SpiralMatrix {
public static List<Integer> spiralOrder(int[][] matrix) {
List<Integer> result = new ArrayList<>();
if (matrix.length == 0 || matrix[0].length == 0){
return result;
}
int top = 0; // 上边界
int bottom = matrix.length - 1; // 下边界
int left = 0; // 左边界
int right = matrix[0].length - 1; // 右边界
while(true){
for(int i=left;i<=right;i++)// 向右移动直到最右边
result.add(matrix[top][i]);
if(++top > bottom) break;
for(int i=top;i<=bottom;i++)// 向下移动直到最底端
result.add(matrix[i][right]);
if(--right < left) break;
for(int i=right;i>=left;i--)// 向左移动直到最左边
result.add(matrix[bottom][i]);
if (--bottom < top) break;
for(int i=bottom;i>=top;i--)// 向上移动到起始位置上方一格
result.add(matrix[i][left]);
if (++left > right) break;
}
return result;
}
}
```
这段代码实现了对于任意大小(`m×n`)输入矩阵的顺时针顺序遍历,并将结果存储在一个列表当中返回给调用者[^2]。
阅读全文
相关推荐















