美文网首页算法
打印旋转矩阵

打印旋转矩阵

作者: 一凡呀 | 来源:发表于2017-12-06 15:22 被阅读0次

要求:

打印旋转90度后的n*n的矩阵

思路:

依旧用整体的思想,具体实现如下图


image.png

代码:

 public static void rotateEdge(int[][] m,int tR,int tC,int dR,int dC){
        int times = dR-tR;
        for (int i = 0;i<times;i++){
            int temp = m[tR][tC+i];
            m[tR][tC+i] = m[dR-i][tC];
            m[dR-i][tC] = m[dR][dC-i];
            m[dR][dC-i] = m[tR+i][dC];
            m[tR+i][dC] = temp;
        }
    }

 public static void spiralOrderPrint(int[][] matrix) {
        int tR = 0;
        int tC = 0;
        int dR = matrix.length-1;
        int dC = matrix[0].length-1;
        while (tR<dR)
            rotateEdge(matrix,tR++,tC++,dR--,dC--);
        for (int i = 0;i<matrix.length;i++){
            for (int j = 0;j<matrix[0].length;j++){
                System.out.print(matrix[i][j]+" ");
            }
        }
    }

  public static void main(String[] args) {
        int[][] matrix = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 },
                { 13, 14, 15, 16 } };
        spiralOrderPrint(matrix);

    }

相关文章

网友评论

    本文标题:打印旋转矩阵

    本文链接:https://www.haomeiwen.com/subject/zaxlixtx.html