48-旋转图像

 

 

 

 思路,要的是顺时针旋转九十度。

1.按照主对角线,做个对称。

[[1,2,3],[4,5,6],[7,8,9]]    变成:[[1,4,7],[2,5,8],[3,6,9]],这一步用二层循环就行了,n*n的矩阵,所以m.length==m[0].length,用哪个都行

2,竖着,左右两半来个轴对称,变成[[7,4,1],[8,5,2],[9,6,3]]这就是最终答案

class Solution {
    public void rotate(int[][] matrix) {
        for(int i=0;i<matrix[0].length;i++)
        {
            for(int j=i;j<matrix[0].length;j++)
            {
                swap(matrix,i,j,j,i);
            }
        }
        int l=0;
        int r=matrix.length-1;
        for(int i=0;i<matrix.length;i++)
        {
            l=0;
            r=matrix.length-1;
            while(l<r)
            {
                swap(matrix,i,l,i,r);
                 l++;
                r--;
            }
           
        }
    }
    public void swap(int [][] matrix,int a,int b,int c,int d)
    {
        int temp;
        temp=matrix[a][b];
        matrix[a][b]=matrix[c][d];
        matrix[c][d]=temp;
    }
}

  

 

posted @ 2020-04-28 10:13  弓呆的胖次  阅读(150)  评论(0编辑  收藏  举报