day12 leetcode-hot100-20(矩阵3)

48. 旋转图像 - 力扣(LeetCode)

1.辅助数组法(题目不让)

思路:很简单,新建一个二维数组,直接找新数组与旧数组的规律即可。比如这个旋转90。那就是相当于 new[col][n-row-1]=old[row][col],然后两个for循环,分别为0-(n-1)即可。

2.原地旋转数组

思路

(1)这个很有意思,你可以旋转四次试一试,能够发现规律,也就是第四次旋转到原来的位置了,那我们就可以将第一次开始旋转的位置放到临时变量temp中,然后依次替代即可。下面展示官方提供的规律图解:

(2)难点在于如何遍历,肯定不能遍历n*n次了,否则就回去了,我们现在是每个循环改变4次,所以只需要循环n*n/4即可。我们将n*n大小分成4块就能完成所有改变。

具体代码
java 复制代码
class Solution {
    public void rotate(int[][] matrix) {
        int n=matrix.length;

        for(int i=0;i<n/2;i++){
            for(int j=0;j<(n+1)/2;j++){
                int temp=matrix[i][j];
                matrix[i][j]=matrix[n-j-1][i];
                matrix[n-j-1][i]=matrix[n-i-1][n-j-1];
                matrix[n-i-1][n-j-1]=matrix[j][n-i-1];
                matrix[j][n-i-1]=temp;
            }
        }

    }
}
相关推荐
咸鱼爱学习1 天前
【题解】B2613【深基1.习5】打字速度
数据结构·c++·算法
一匹电信狗1 天前
【C++】C++风格的类型转换
服务器·开发语言·c++·leetcode·小程序·stl·visual studio
学学学无无止境1 天前
力扣-上升的温度
leetcode
云青黛1 天前
轮廓系数(一个异型簇的分类标准)
人工智能·算法·机器学习
云青黛1 天前
肘部法找k
人工智能·算法·机器学习·聚类
CHANG_THE_WORLD1 天前
if条件语句 三目运算符 汇编分析
汇编·算法·条件语句·if 语句·汇编分析·条件语句汇编分析
tumu_C1 天前
无用知识研究:在trailing return type利用decltype,comma operator在对函数进行sfinae原创 [二]
开发语言·c++·算法
web安全工具库1 天前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化
海蓝可知天湛1 天前
利用Genspark自定义智能体:算法竞赛测试数据反推与生成工具
算法·aigc
BothSavage1 天前
Qwen3-VL-8B-Instruct推理测试transformer+sglang双版本
算法