LeetCode中二维数组如何实现旋转矩阵

发布时间:2021-12-15 11:36:57 作者:小新
来源:亿速云 阅读:224

这篇文章给大家分享的是有关LeetCode中二维数组如何实现旋转矩阵的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

题目描述:“给衣服N*N的矩阵表示图像,其中每个像素的大小为4字节,设计一个算法,图像旋转90度”


示例:

matrix=[[1, 2, 3],[4, 5, 6],[7, 8, 9]]


round_matrix=[[7, 4, 1],[8, 5, 2],[9, 6, 3]]


第一次尝试

观察数组旋转的规律,可以创建一个新的二维数组,利用循环将数据元素按照旋转规律输入到新建二维数组中

LeetCode中二维数组如何实现旋转矩阵

注意:range(start, stop, -1)从大到小遍历的时候,也只是取到 stop+1 的下标位置

虽然该方法解决了问题,但是占据了额外的内存(创建了新的二维数组)

 

算法优化——不占据额外内存

不占据内存则不能创建新的变量,而是在原数组上变动

矩阵的旋转有特别规律:

  1. 首先将矩阵的对角线元素交换

  2. 对每一行(一维数组)逆序排列

LeetCode中二维数组如何实现旋转矩阵

LeetCode中二维数组如何实现旋转矩阵

LeetCode中二维数组如何实现旋转矩阵

注意:

matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
for i in range(len(matrix[0])):    for j in range(i, len(matrix)):

感谢各位的阅读!关于“LeetCode中二维数组如何实现旋转矩阵”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. JavaScript中二维数组的查找案例
  2. c语言中二维数组如何使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

leetcode

上一篇:LeetCode中二维数组如何实现零矩阵

下一篇:学习Kafka要从哪几个基础概念入手

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》