Leetcode48. 旋转图像

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode48. 旋转图像相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/rotate-image/

解题思路

我们可以把矩形切成4块,我们只要旋转其中的一块就行了,为了方便我们就旋转(0,0)到(n/2,(n+1)/2)为矩形的所有点就行,用临时变量t保存该区域的点。

代码

class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        for(int i = 0; i < n >> 1; i++) {   //遍历要旋转的区域
            for(int j = 0; j < (n + 1) >> 1; j++) {
                int t = matrix[i][j];   //先保存该区域的点
                matrix[i][j] = matrix[n - j - 1][i];    //把该区域下面的点旋转到该区域
                matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1];  //把该区域右下角的点旋转到该区域下面  
                matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1];  //把该区域右边的点旋转到该区域右下角
                matrix[j][n - i - 1] = t;   //将该区域的点旋转到该区域右边
            }
        }
    }
}

复杂度分析

  • 时间复杂度: O ( n 2 ) O(n^2) O(n2)
  • 空间复杂度: O ( 1 ) O(1) O(1)

以上是关于Leetcode48. 旋转图像的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 每日一题 48. 旋转图像

leetcode 每日一题 48. 旋转图像

LeetCode:旋转图像48

LeetCode(48):旋转图像

LeetCode——48. 旋转图像

Leetcode题目48.旋转图像(中等)