当前位置: 首页 > java >正文

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块就能完成所有改变。 

具体代码
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;}}}
}

http://www.xdnf.cn/news/9525.html

相关文章:

  • 【Linux】网络(上)
  • Vue开发系列——如何使用Vue
  • 图像卷积OpenCV C/C++ 核心操作
  • 【DB2】ERRORCODE=-4499, SQLSTATE=08001
  • 【C++基础知识】匿名命名空间
  • mysql prepare statement
  • 如何查询服务器的端口号
  • 数据结构 -- 树相关面试题
  • SFTP工具类实现文件上传下载_
  • 关于ios点击分享自动复制到粘贴板的问题
  • CEH Practical 实战考试真题与答案
  • C++异步通信-future学习
  • maven项目编译时复制xml到classes目录方案
  • 服务器关机
  • 实验设计与分析(第6版,Montgomery)第4章随机化区组,拉丁方, 及有关设计4.5节思考题4.18~4.19 R语言解题
  • 【OSS】 前端如何直接上传到OSS 上返回https链接,如果做到OSS图片资源加密访问
  • [AI voiceFFmpeg windows系统下CUDA与cuDNN详细安装教程]
  • 记录一次session安装应用recyclerview更新数据的bug
  • Transformer架构详解:从Attention到ChatGPT
  • 数据脱敏后的测试方法
  • 宏的高级应用 ——一种 C 语言的元编程技巧(X-Macro)
  • Rust 学习笔记:关于迭代器的练习题
  • 用 Python 和 Rust 构建可微分的分子势能模型:深入解析 MOLPIPx 库
  • Rust: CString、CStr和String、str
  • 电商售后服务系统与其他系统集成:实现售后流程自动化
  • Eclipse 插件开发 5.3 编辑器 监听输入
  • AI Agent工具全景解析:从Coze到RAGflow,探索智能体自动化未来!
  • Java、Python、PHP 三种语言实现 二进制与十六进制的相互转换
  • 板凳-------Mysql cookbook学习 (八)
  • Java开发经验——阿里巴巴编码规范实践解析4