推荐一个详解:作者:liao-tian-yi-jian
链接:https://leetcode-cn.com/problems/spiral-matrix/solution/luo-xuan-ju-zhen-by-liao-tian-yi-jian/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
截了个图
:
分割成了一圈一圈,判断条件也很666...
个人微改:
import java.util.ArrayList;
import java.util.List;
class Matrix {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> list = new ArrayList<>();
if(matrix==null||matrix.length==0) {
return list;
}
int m = matrix.length;
int n = matrix[0].length;
int i = 0;
int round = (Math.min(m,n)+1)/2;
while(i<round) {
for(int j=i;j<(n-i);j++) {
list.add(matrix[i][j]);
}
for(int j=i+1;j<m-i;j++) {
list.add(matrix[j][(n-1)-i]);
}
for(int j=n-2-i;j>=i && (m-1-i)!=i;j--) {
list.add(matrix[m-1-i][j]);
}
for(int j=m-2-i;j>=i+1 && (n-1-i)!=i;j--) {
list.add(matrix[j][i]);
}
i++;
}
return list;
}
}
public class SpiralMatrix {
public static void main(String args[]) {
Matrix hah = new Matrix();
int a[][] = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
System.out.println(hah.spiralOrder(a));
}
}

该博客详细解析了如何实现矩阵的螺旋顺序遍历,通过Java代码展示了如何一圈一圈地遍历矩阵,并给出了优化后的实现方式。文章内容包括关键判断条件和逻辑结构,适合想要了解或学习矩阵操作的读者。
4786

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



