按照此顺序进行输出
// 题目:输入一个二维矩阵,顺时针打印这个矩阵
// 解法:设置最大最小值,判断
public class Main {
public static void main(String[] args) {
int[][] input = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 }, { 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 } };
printMatrix(input);
}
public static void printMatrix(int[][] input) {
int curX = 0;
int curY = 0;
int minX = 0;
int maxX = input[0].length - 1;
int minY = 0;
int maxY = input.length - 1;
while (maxX >= minX && maxY >= minY) {
while (maxX >= minX && maxY >= minY && curX <= maxX) {
System.out.print(input[minY][curX] + " ");
curX++;
}
minY++;
curY = minY;
while (maxX >= minX && maxY >= minY && curY <= maxY) {
System.out.print(input[curY][maxX] + " ");
curY++;
}
maxX--;
curX = maxX;
while (maxX >= minX && maxY >= minY && curX >= minX) {
System.out.print(input[maxY][curX] + " ");
curX--;
}
maxY--;
curY = maxY;
while (maxX >= minX && maxY >= minY && curY >= minY) {
System.out.print(input[curY][minX] + " ");
curY--;
}
minX++;
curX = minX;
}
}
}