顺时针打印矩阵

题目描述:
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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 class Solution25 {
        public static ArrayList<Integer> printMatrix(int[][] matrix){
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        for (int i=0;i<matrix.length;i++){
            arrayList.add(matrix[0][i]);  //第一行
        }
        for (int j=1;j<matrix.length;j++){
            arrayList.add(matrix[j][matrix.length-1]); //右边一列
        }
        for(int k=2;k>=0;k--){
            arrayList.add(matrix[matrix.length-1][k]);//最下边一行
        }
        for (int f=matrix.length-2;f>=1;f--){
            arrayList.add(matrix[f][0]); //最左边一列
        }
        for(int g=1;g<matrix.length-1;g++){
            arrayList.add(matrix[1][g]); //内圈第二行
        }
        for(int d=matrix.length-2;d>0;d--){
            arrayList.add(matrix[matrix.length-2][d]);
        }
        return arrayList;
    }
    public static void main(String args[]){
        int[][] a = {
                {1,2,3,4},
                {5,6,7,8},
                {9,10,11,12},
                {13,14,15,16}
        };
        System.out.println("输出:"+printMatrix(a));
    }
}

//输出:[1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10]

//        Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马超的博客

谢谢大佬的赞赏 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值