leetcode 48. 旋转图像

2023.10.5

本题最直观的思路就是再new一个二维数组,然后将原数组的第i行j列赋值给新数组的j行n-i-1列即可。 java代码如下:

方法一:使用额外空间:

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

方法二:原地修改

还可以原地修改,先将数组进行转置,再将数组每一行进行反转即可。java代码如下:

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; i++){
            for(int j=0; j<n/2; j++){
                int temp = matrix[i][j];
                matrix[i][j] = matrix[i][n-j-1];
                matrix[i][n-j-1] = temp;
            }
        }
    }
}
相关推荐
super_lzb15 小时前
mybatis拦截器ParameterHandler详解
java·数据库·spring boot·spring·mybatis
程序之巅15 小时前
VS code 远程python代码debug
android·java·python
我是Superman丶16 小时前
【异常】Spring Ai Alibaba 流式输出卡住无响应的问题
java·后端·spring
墨雨晨曦8816 小时前
Nacos
java
罗湖老棍子16 小时前
【例4-6】香甜的黄油(信息学奥赛一本通- P1345)
算法·图论·dijkstra·floyd·最短路算法·bellman ford
不染尘.16 小时前
进程切换和线程调度
linux·数据结构·windows·缓存
invicinble16 小时前
seata的认识与实际开发要做的事情
java
jghhh0116 小时前
基于C#实现与三菱FX系列PLC串口通信
开发语言·算法·c#·信息与通信
ada7_16 小时前
LeetCode(python)22.括号生成
开发语言·数据结构·python·算法·leetcode·职场和发展
曹轲恒16 小时前
JVM之垃圾回收算法(GC)
jvm·算法