给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> list = new ArrayList<>();
int n = matrix.length;
int m = matrix[0].length;
int count = n*m;
int t = 0;
int b = n-1;
int l = 0;
int r = m-1;
while(count >= 1){
for(int i = l;i <= r && count >= 1;i++){
list.add(matrix[t][i]);
count--;
}
t++;
for(int i = t;i <= b && count >= 1;i++){
list.add(matrix[i][r]);
count--;
}
r--;
for(int i = r;i >= l && count>=1;i--){
list.add(matrix[b][i]);
count--;
}
b--;
for(int i = b;i >= t && count >= 1;i--){
list.add(matrix[i][l]);
count--;
}
l++;
}
return list;
}
}
矩阵螺旋顺序遍历算法实现
该博客介绍了如何实现一个按顺时针螺旋顺序遍历矩阵的算法,给出了具体的Java代码实现。示例中,给定一个3x3的矩阵,算法能够正确地返回螺旋顺序下的所有元素。
1129

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



