public class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> list = new ArrayList<>();
//上下左右边界
int down = matrix.length;
if(down==0)return list;
int right = matrix[0].length;
int x=0;
int y=0;
int top=0;
int left=0;
while(down>top&&left<right){
for(;x<right;x++){
list.add(matrix[y][x]);
}
top++;
x--;
y++;
//每次结束后看是否符合条件
if(!(down>top&&left<right)){
return list;
}
for(;y<down;y++){
list.add(matrix[y][x]);
}
right--;
y--;
x--;
if(!(down>top&&left<right)){
return list;
}
for(;x>=left;x--){
list.add(matrix[y][x]);
}
x++;
y--;
down--;
if(!(down>top&&left<right)){
return list;
}
for(;y>=top;y--){
list.add(matrix[y][x]);
}
y++;
x++;
left++;
}
return list;
}
}
54. Spiral Matrix
最新推荐文章于 2024-01-06 15:12:04 发布
本文介绍了一种使用Java实现的螺旋遍历二维矩阵的方法。通过定义边界来控制遍历的方向,并逐步更新边界,确保遍历覆盖整个矩阵。适用于矩阵数据结构的操作。
507

被折叠的 条评论
为什么被折叠?



