输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
package 牛客;
import java.util.ArrayList;
import java.util.Scanner;
public class 打印数组 {
public static ArrayList<Integer> printMatrix(int[][] matrix) {
ArrayList<Integer> a = new ArrayList<>();
if (matrix == null) {
return a;
}
int length = matrix.length;
int len = matrix[0].length;
if (length == 0 || len == 0) {
return a;
}
int up = 0;
int left = 0;
int down = matrix.length - 1;
int right = matrix[0].length - 1;
while(left<=right && up<=down) {
for (int i = left; i <= right; i++)
a.add(matrix[up][i]);
up++;
for (int i = up; i <= down; i++)
a.add(matrix[i][right]);
right--;
if (up - 1 != down) {
for (int i = right; i >= left; i--)
a.add(matrix[down][i]);
}
down--;
if (left != right + 1) {
for (int i = down; i >= up; i--)
a.add(matrix[i][left]);
}
left++;
}
return a;
}
public static void main(String []args){
int [][]a=new int[4][4];
Scanner s=new Scanner(System.in);
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
a[i][j]=s.nextInt();
}
}
System.out.println(printMatrix(a));
}
}