Leetcode48旋转图像

思路:找规律

方法一、一般辅助数组解法

行列转换,第一行变到第三列,第二行变到第二列,第三行变到第一列

matrixrowcol = matrixcoln-row-1

然后复制回原数组

java 复制代码
class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        int[][] matrix_new = new int[n][n];
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < n; ++j) {
                matrix_new[j][n - i - 1] = matrix[i][j];
            }
        }
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < n; ++j) {
                matrix[i][j] = matrix_new[i][j];
            }
        }
    }
}

方法二、对角线翻转+左右翻转

矩阵性质,可以发现对角线翻转之后就是逆时针转了九十度,左右再翻转就是顺时针转了九十度

java 复制代码
class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        for(int i = 0;i<n;i++){
//翻转一半
            for(int j = i;j<n;j++){
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
//翻转一半
        for(int i = 0;i<n/2;i++){
            for(int j = 0;j<n;j++){
                int temp = matrix[j][i];
                matrix[j][i] = matrix[j][n-i-1];
                matrix[j][n-i-1] = temp;
            }
        }
    }
}
相关推荐
noipp12 小时前
推荐题目:洛谷 P10907 [蓝桥杯 2024 国 B] 蚂蚁开会
c语言·c++·算法·编程·洛谷
程序员二叉13 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc
青山木14 小时前
Hot 100 --- 轮转数组
java·数据结构·算法
徐小夕14 小时前
Loop Engineering 深度解析与实战指南(全网最全)
前端·算法·github
北域码匠15 小时前
SHA-1算法:安全哈希原理与应用解析
算法·c#·哈希算法
手写码匠16 小时前
手写 GraphRAG:从零实现图增强检索增强生成系统
人工智能·深度学习·算法·aigc
BomanGe116 小时前
NSK重载高刚性滚珠丝杠技术详解
经验分享·算法·规格说明书
Matrix_1117 小时前
手机里的计算摄影:广角形变校正算法
人工智能·算法·智能手机·计算摄影
WBluuue17 小时前
数据结构与算法:有序表(二):跳表
数据结构·c++·算法·skiplist
x1387028595718 小时前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio