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;
            }
        }

    }
}
相关推荐
G等你下课14 分钟前
摆动序列
算法
地平线开发者17 分钟前
地平线高效 backbone: HENet - V1.0
算法·自动驾驶
Postkarte不想说话28 分钟前
二叉平衡搜索树(AVL树)
算法
安全系统学习1 小时前
【网络安全】文件上传型XSS攻击解析
开发语言·python·算法·安全·web安全
星沁城1 小时前
149. 直线上最多的点数
java·算法·leetcode
皮蛋瘦肉粥_1212 小时前
代码随想录day10栈和队列1
数据结构·算法
金融小师妹2 小时前
黄金价格触及3400美元临界点:AI量化模型揭示美元强势的“逆周期”压制力与零售数据爆冷信号
大数据·人工智能·算法
李元豪3 小时前
强化学习所有所有算法对比【智鹿ai学习记录】
人工智能·学习·算法
岁忧3 小时前
(LeetCode 面试经典 150 题) 169. 多数元素(哈希表 || 二分查找)
java·c++·算法·leetcode·go·散列表
YuTaoShao3 小时前
【LeetCode 热题 100】15. 三数之和——排序 + 双指针解法
java·算法·leetcode·职场和发展