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;
            }
        }
    }
}
相关推荐
拓恒技术2 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
晨曦中的暮雨2 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
怕浪猫3 小时前
Claude Code vs Codex:Computer Use 实现原理深度拆解
算法·面试·github
文丑颜不良啊4 小时前
LeetCode876~900题目解析
java·leetcode
罗西的思考4 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
aloha_7894 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
淡海水4 小时前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节
知守观5 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅5 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友