美文网首页
48. 旋转图像

48. 旋转图像

作者: 最困惑的时候就是能成长的时候 | 来源:发表于2019-05-24 13:19 被阅读0次

48. 旋转图像

1.想法

解:最终将所有矩阵的元素旋转90度

问题:需要旋转90度

方法:先根据对角线旋转,然后根据竖直中线旋转

2.思维过程

1.根据对角线旋转就是转置矩阵根据对角线旋转满足x_iy_j与x_jy_i旋转

2.根据中线旋转就是将x_i x_j旋转,其中i+j=n-1

3.伪代码

1.step one 转置矩阵

for i=0 ->n-1
  for j=i ->n-1
    swap(Xiyj , Xjyi)     

2.step two 中线对折

for i=0->n-1
   for j=0->n/2-1
     swap(xiyj,xiy(n-1-j))

3.代码

 public void rotate(int[][] matrix) {
        //转置矩阵
       for(int i=0;i<matrix.length;i++){
           for(int j=i;j<matrix.length;j++){
               swap(matrix,i,j,j,i);
           }
       }
       //对折矩阵
          for(int i=0;i<matrix.length;i++){
            for (int j=0;j<matrix.length/2;j++){
                swap(matrix,i,j,i,matrix.length-1-j);
            }
        }
    }
     private void swap(int[][] matrix, int i1, int j1, int i2, int j2) {
        int temp = matrix[i1][j1];
        matrix[i1][j1]=matrix[i2][j2];
        matrix[i2][j2]=temp;
    }

相关文章

  • leetcode 48.图像旋转 及LCP 2. 黑白方格画

    48.图像旋转给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像...

  • LeetCode:48. 旋转图像简单思路求解

    题目:48. 旋转图像[https://leetcode-cn.com/problems/rotate-image...

  • LeetCodeDay06

    48. 旋转图像 描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像旋转 90 度(顺时针)。 注意 你...

  • 48.旋转图像

  • 48. 旋转图像

    给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地 旋转图像,这意味着你...

  • 48. 旋转图像

    一、题目原型: 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。 说明:你必须在原地旋转...

  • 48.旋转图像

    思路旋转分为两步:1、将矩阵转置,2、翻转当前行

  • 48. 旋转图像

    给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需...

  • 48. 旋转图像

    【Description】 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: ...

  • 48. 旋转图像

    【Description】给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你...

网友评论

      本文标题:48. 旋转图像

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