花式输出二维数组---回形输出

描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字

列子

例如,如果输入如下矩阵:

 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.

public static ArrayList printMatrix(int [][] matrix) {
    ArrayList result = new ArrayList<>();
    int row = matrix.length;
    int col = matrix[0].length;
    int flag = 0;
    int temp = row * col;
    while (true) {


        //上边
        for(int i = flag; i < col - flag; i++){
            result.add(new Integer(matrix[flag][i]));
            temp--;
            if(temp==0) return result;
        }

        //右边
        for (int i = flag + 1; i < row - flag; i++){
            result.add(new Integer(matrix[i][col - flag - 1]));
            temp--;
            if(temp==0) return result;
        }

        //下边
        for (int i = col - 2 - flag; i > flag - 1; i--){
            result.add(new Integer(matrix[row - flag - 1][i]));
            temp--;
            if(temp==0) return result;
        }

        //左边
        for (int i = row - 2 - flag; i > flag ; i--){
            result.add(new Integer(matrix[i][flag]));
            temp--;
            if(temp==0) return result;
        }

        flag++;
    }
}

你可能感兴趣的:(花式输出二维数组---回形输出)