📅  最后修改于: 2023-12-03 15:06:40.520000             🧑  作者: Mango
这是一个在Java中打印矩阵的程序,采用了反螺旋方式。该程序以二维数组形式输入矩阵,然后按照反螺旋的方式打印出矩阵。
以下为该程序的代码片段:
public class MatrixPrinter {
public static void print(int[][] matrix) {
int rows = matrix.length;
int cols = matrix[0].length;
int top = 0, bottom = rows - 1, left = 0, right = cols - 1;
while (true) {
if (left > right) {
break;
}
for (int i = left; i <= right; i++) {
System.out.print(matrix[top][i] + " ");
}
top++;
if (top > bottom) {
break;
}
for (int i = top; i <= bottom; i++) {
System.out.print(matrix[i][right] + " ");
}
right--;
if (left > right) {
break;
}
for (int i = right; i >= left; i--) {
System.out.print(matrix[bottom][i] + " ");
}
bottom--;
if (top > bottom) {
break;
}
for (int i = bottom; i >= top; i--) {
System.out.print(matrix[i][left] + " ");
}
left++;
}
System.out.println();
}
}
该程序可以通过以下代码片段进行使用:
int[][] matrix = {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 }
};
MatrixPrinter.print(matrix);
该代码将会打印出矩阵 matrix
,输出结果为:
1 2 3 4 8 12 11 10 9 5 6 7
该程序采用了类似螺旋的方式遍历矩阵,通过四个指针 top
、bottom
、left
、right
分别指向当前遍历的边界,不断地向内收缩,直到遍历完整个矩阵为止。同时,通过四个 for
循环依次打印出当前边界的元素。