LeetCode中二维数组如何实现旋转矩阵
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章给大家分享的是有关LeetCode中二维数组如何实现旋转矩阵的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。题目描述:"给衣服N*N的矩阵表示图像,其中每个像素的大小
千家信息网最后更新 2025年02月03日LeetCode中二维数组如何实现旋转矩阵
这篇文章给大家分享的是有关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]]
第一次尝试
观察数组旋转的规律,可以创建一个新的二维数组,利用循环将数据元素按照旋转规律输入到新建二维数组中
注意:range(start, stop, -1)从大到小遍历的时候,也只是取到 stop+1 的下标位置
虽然该方法解决了问题,但是占据了额外的内存(创建了新的二维数组)
算法优化--不占据额外内存
不占据内存则不能创建新的变量,而是在原数组上变动
矩阵的旋转有特别规律:
首先将矩阵的对角线元素交换
对每一行(一维数组)逆序排列
注意:
python变量交换语法:
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
两层循环遍历的时候,注意第二层循环不是从0开始,不然每一种情况就会出现重复,最终回到原点。而是从上一个循环的 i 开始遍历。在对角线交换元素中最后一次交换,就是右下角的元素与自己交换,只有一次交换。如果从0开始,那每一个i都有三个交换
for i in range(len(matrix[0])): for j in range(i, len(matrix)):
感谢各位的阅读!关于"LeetCode中二维数组如何实现旋转矩阵"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数组
矩阵
二维
元素
循环
内存
规律
内容
变量
图像
对角
对角线
时候
更多
算法
篇文章
不错
实用
一行
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
三星手机无法连接到网络服务器
网络技术三级模拟题
海康首选dns服务器
天地劫服务器1区
佩鸿软件开发
瑞思金融数据库怎么查信息
网络安全讲座听后感300
php数据库590
悉尼大学网络安全硕士
软件开发工程师表扬信范文
宣传栏模板软件开发
和讯股票数据库
网络安全责任状模板
辽宁趣任务网络技术有限公司
软件开发逐渐模块化
大话西游网络安全小品
济南市人工影响天气中心软件开发
mc如何开服务器
腾讯云数据库自动备份
惠普服务器查dns码
男模视频软件开发
学数通还是网络安全好
天地劫服务器1区
计算机网络技术实训的目的
手游测试服务器
四川凯奇义网络技术
云主机sql数据库
博达网络技术
r510服务器蓝灯亮不开机
网络安全风险调研报告