转圈打印矩阵
转圈打印矩阵的基本思路就是获取矩形边框,并打印边框
public static void spiralOrderPrint(int[][] matrix) {
//左边界的纵坐标
int tR = 0;
//左边界的横坐标
int tC = 0;
//右边界的纵坐标
int dR = matrix.length - 1;
//有边界的横坐标
int dC = matrix[0].length - 1;
//满足条件则打印边框,一层一层地打印边框
while (tR <= dR && tC <= dC) {
printEdge(matrix, tR++, tC++, dR--, dC--);
}
}
public static void printEdge(int[][] m, int tR, int tC, int dR, int dC) {
//如果左边界的纵坐标等于右边界的纵坐标,说明只有一行,直接打印
if (tR == dR) {
for (int i = tC; i <= dC; i++) {
System.out.print(m[tR][i] + " ");
}//如果左边界的横坐标等于右边界的横坐标,说明只有一列,直接打印
} else if (tC == dC) {
for (int i = tR; i <= dR; i++) {
System.out.print(m[i][tC] + " ")