前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图解LeetCode——48. 旋转图像

图解LeetCode——48. 旋转图像

原创
作者头像
爪哇缪斯
修改于 2023-07-13 14:55:37
修改于 2023-07-13 14:55:37
24100
代码可运行
举报
文章被收录于专栏:爪哇缪斯爪哇缪斯
运行总次数:0
代码可运行

一、题目

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

二、示例

2.1> 示例 1:

输入】matrix = [[1,2,3],[4,5,6],[7,8,9]] 【输出】[[7,4,1],[8,5,2],[9,6,3]]

2.2> 示例 2:

输入】matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] 【输出】[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

提示:

  • n == matrix.length == matrix[i].length
  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000

三、解题思路

根据题目描述,我们要将题目给出的二维矩阵matrix进行顺时针90度的旋转,然后返回旋转后matrix数组即可。其中,比较容易想到就是先创建一个相同大小的二维矩阵matrix_new,然后执行如下步骤:

步骤1】遍历二维矩阵matrix第1行的时候,就将其赋值为matrix_new的最后1列; 【步骤2】遍历二维矩阵matrix第2行的时候,就将其赋值为matrix_new的倒数第2列; 【步骤2】遍历二维矩阵matrix第3行的时候,就将其赋值为matrix_new的倒数第3列; 以此类推……

但是,题目有一个要求,就是请不要使用另一个矩阵来旋转图形,所以上面的解法就不适合去解答这道题了。那么我们还有什么其他的解法呢?我们其实可以采用如下两个步骤移动二维矩阵:

步骤1】将matrix二维矩阵进行上下互换; 【步骤2】将matrix二维矩阵进行对角互换

经过上面两个步骤,我们就可以实现将matrix二维矩阵顺时针旋转90度。为了便于理解,我们以输入matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]为例,来看一下具体的操作流程。具体请见下图所示:

四、代码实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        for (int i = 0; i < n/2; i++) {
            for (int j = 0; j < matrix[0].length; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[n - i - 1][j];
                matrix[n - i - 1][j] = temp;
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = i; j < matrix[0].length; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }    
        }
    }
}

今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
☆打卡算法☆LeetCode 48、旋转图像 算法解析
链接:48. 旋转图像 - 力扣(LeetCode) (leetcode-cn.com)
恬静的小魔龙
2022/08/07
3480
☆打卡算法☆LeetCode 48、旋转图像  算法解析
旋转图像\
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
狼啸风云
2023/10/23
3570
旋转图像\
旋转图像(C++)
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
GeekLiHua
2025/01/21
1400
旋转图像(C++)
【每日一题】48. Rotate Image
You are given an n x n 2D matrix representing an image, rotate the image by 90 degrees (clockwise).
公众号-不为谁写的歌
2020/10/30
3060
【每日一题】48. Rotate Image
旋转图像(LeetCode 48)
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
恋喵大鲤鱼
2024/01/04
2030
旋转图像(LeetCode 48)
算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
共饮一杯无
2023/02/10
3600
算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)
48. 旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
lucifer210
2019/10/15
7390
leecode刷题(10)-- 旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
希希里之海
2019/02/15
4010
Leetcode No.48 旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
week
2021/11/29
1910
Leetcode No.48 旋转图像
48. 旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
张伦聪zhangluncong
2022/10/26
6660
LeetCode 图解 | 48 . 旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
五分钟学算法
2020/04/22
5060
48. 旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像
编程张无忌
2021/06/01
6980
48. 旋转图像
LeetCode 48. 旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
freesan44
2020/06/03
3390
一起刷 leetcode 之旋转矩阵
给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。
每天晒白牙
2020/08/20
7540
leetcode题解 | 48. 旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
ACM算法日常
2018/08/07
5370
leetcode题解 | 48. 旋转图像
leetcode-48-旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
chenjx85
2018/08/16
5630
旋转图像
说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
木瓜煲鸡脚
2021/01/18
1.5K0
旋转图像
【LeetCode】48. 旋转图像
参考 https://blog.csdn.net/wuzhongqiang/article/details/103221743
韩旭051
2020/06/23
3810
前几天挂掉一个读者的滴滴二面矩阵题目
今天是小浩算法 “365刷题计划” 第103天。这是前几天一个同学去滴滴面试的原题。
程序员小浩
2020/06/02
4840
数据结构与算法-1 :旋转图像
从本文开始,我将开启一个新的系列文章的编写数据结构与算法,在本系列文章中,我将对牛客、LeetCode等主流算法刷题平台的精彩题目进行讲解,实现语言包括Python(主)、Javascript、C、C++,同时我也会将相关算法与我们的实际开发项目结合,帮助大家更好的理解这略显枯燥的算法。
石璞东
2020/05/22
7540
相关推荐
☆打卡算法☆LeetCode 48、旋转图像 算法解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档