java逆时针打印矩阵
时间: 2023-05-26 13:07:00 浏览: 61
如下是Java代码实现逆时针打印矩阵:
```
public static void printMatrixInAntiClockwise(int[][] matrix) {
if(matrix == null || matrix.length == 0) {
return;
}
int rows = matrix.length;
int cols = matrix[0].length;
int start = 0;
while(rows > start * 2 && cols > start * 2) {
printMatrixInAntiClockwiseCore(matrix, rows, cols, start);
start++;
}
}
public static void printMatrixInAntiClockwiseCore(int[][] matrix, int rows, int cols, int start) {
int endX = cols - 1 - start;
int endY = rows - 1 - start;
// 从上到下打印一列
for(int i = start; i <= endY; i++) {
System.out.print(matrix[i][start] + " ");
}
// 从左往右打印一行
for(int i = start + 1; i <= endX; i++) {
System.out.print(matrix[endY][i] + " ");
}
// 如果矩阵有多行多列,那么从下往上打印一列
if(endY > start) {
for(int i = endY - 1; i >= start; i--) {
System.out.print(matrix[i][endX] + " ");
}
}
// 如果矩阵有多行多列,那么从右往左打印一行
if(endX > start) {
for(int i = endX - 1; i >= start + 1; i--) {
System.out.print(matrix[start][i] + " ");
}
}
}
```
以上代码实现了一个通用的逆时针打印矩阵函数,首先判断矩阵是否为null或长度为0,然后定义起始点start并通过循环来确定打印范围,最后调用printMatrixInAntiClockwiseCore函数打印矩阵。printMatrixInAntiClockwiseCore函数实现了逆时针打印矩阵的四个方向,从上到下、从左往右、从下往上、从右往左,其中后两个方向需要判断是否需要打印。