逆时针打印矩阵

public class PrintMatrix {

    public static void main(String[] args) {

        int[][] p = {/** m ↓*/{1, 15, 14, 13,12},
                     /**   ↓*/{2, 16, 21, 20,11},
                     /**   ↓*/{3, 17, 18, 19,10},
                     /** n ↓*/{4, 5, 6, 7,9}};
                               /** k → j*/
        int direction = -1;
        int m = 0, n = 3;
        int k = 0, j = 4;

        //向下后k+1
        //向右后n-1
        //向上后j-1
        //向左后m+1
        //m=n&&k=j 结束
        while (true) {
            direction = (direction + 1) % 4;
            switch (direction) {
                case 0://↓
                    for (int i = m; i <= n; i++) {
                        System.out.print(p[i][k] + " ");
                    }
                    k++;
                    break;
                case 1://→
                    for (int i = k; i <= j; i++) {
                        System.out.print(p[n][i] + " ");
                    }
                    n--;
                    break;
                case 2://↑
                    for (int i = n; i >= m; i--) {
                        System.out.print(p[i][j] + " ");
                    }
                    j--;
                    break;
                case 3://←
                    for (int i = j; i >= k; i--) {
                        System.out.print(p[m][i] + " ");
                    }
                    m++;
                    break;
            }
            if (m == n && k == j) {
                break;
            }
        }

    }

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2...
    UAV阅读 142评论 0 0
  • 解题思路 下图是打印的顺序 首先去定义上、下、左、右四个边界比如:在图中,打印1,2,3.起始位置是左边界,结束位...
    bangbang2阅读 95评论 0 2
  • 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2...
    Y_Stone阅读 171评论 0 0
  • 题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 ...
    ProudLin阅读 122评论 0 0
  • 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 ...
    小小的白菜阅读 119评论 0 1