import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int[][] matrix) {
        ArrayList<Integer> list = new ArrayList<>();
        while (matrix.length > 0) {
            for (int i : matrix[0]) {
                list.add(i);
            }
            if (matrix.length ==1){
                return list;
            }
            //构建删除第一行后的数组
            int temp[][] = new int[matrix.length - 1][matrix[0].length];
            for (int i = 1; i < matrix.length; i++) {
                for (int j = 0; j < matrix[i].length; j++) {
                    temp[i - 1][j] = matrix[i][j];
                }
            }
                matrix = arrayRotate(temp);
        }
        return list;
    }
     //数组旋转
    public static int[][] arrayRotate(int[][] matrix) {
        int temp[][] = new int[matrix[0].length][matrix.length];
        for (int i = 0; i < matrix[0].length; i++) {
            for (int j = 0; j < matrix.length; j++) {
                temp[i][j] = matrix[j][matrix[0].length - 1 - i];
            }
        }
        return temp;
    }
}