48. 旋转图像

Posted yangbocsu

tags:

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

48. 旋转图像

一、题目

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

二、参考代码

参考来源

2.1 先主对角线翻转,然后左右对换


class Solution 
    public void rotate(int[][] matrix) 
        int n = matrix.length;

        // 主对角线 翻转一次
        for(int i = 0; i < n; i++)
            for(int j = i+1; j < n; j++)
                int tmp = matrix[i][j];
                matrix[i][j] = matrix[j][i]; 
                matrix[j][i] = tmp;
            
        

        // 左右翻转一次
        for(int i = 0, j = n-1; i<=j; i++,j--)
            for(int k = 0; k < n; k++)
                int tmp = matrix[k][i];
                matrix[k][i] = matrix[k][j];
                matrix[k][j] = tmp;
            

        
    


2.2 先上下对换,然后副对角线翻转


class Solution 
    public void rotate(int[][] matrix) 
        int length = matrix.length;
        int n = length/2;
        int temp;
        for (int i = 0; i < n; i++) //对称,上下交换
        
            for (int j = 0; j < length; j++)
            
                temp = matrix[i][j];
                matrix[i][j] = matrix[length - i - 1][j];
                matrix[length - i - 1][j] = temp;
            
        

        for (int i = 0; i < length; i++) //对称交换
        
            for (int j = i; j < length; j++)
            
                temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            
        
    


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

LeetCode:旋转图像48

48. 旋转图像

48. 旋转图像

LeetCode(48):旋转图像

LeetCode——48. 旋转图像

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