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;
            }
        }
    }
}
相关推荐
yuezhilangniao23 分钟前
win10环境变量完全指南:Java、Maven、Android、Flutter -含我的环境备份
android·java·maven
元亓亓亓26 分钟前
考研408--数据结构--day12--查找&二叉排序树
数据结构·考研·查找·二叉排序树
追随者永远是胜利者28 分钟前
(LeetCode-Hot100)32. 最长有效括号
java·算法·leetcode·职场和发展·go
lifallen30 分钟前
CDQ 分治 (CDQ Divide and Conquer)
java·数据结构·算法
笨蛋不要掉眼泪36 分钟前
OpenFeign远程调用详解:声明式实现、第三方API集成与负载均衡对比
java·运维·负载均衡
洛豳枭薰37 分钟前
Redis 基础数据结构
数据结构·redis
yaoxin52112341 分钟前
326. Java Stream API - 实现自定义的 toList() 与 toSet() 收集器
java·开发语言
追随者永远是胜利者42 分钟前
(LeetCode-Hot100)31. 下一个排列
java·算法·leetcode·职场和发展·go
Cosmoshhhyyy1 小时前
《Effective Java》解读第40条:坚持使用Override注解
java·开发语言
ValhallaCoder1 小时前
hot100-二分查找
数据结构·python·算法·二分查找