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

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.lryc.cn/news/2394634.html

相关文章:

  • 【Java开发日记】基于 Spring Cloud 的微服务架构分析
  • 接口性能优化
  • AWTK 嵌入式Linux平台实现多点触控缩放旋转以及触点丢点问题解决
  • 尚硅谷redis7 93-97 springboot整合reids之总体概述
  • Flutter、React Native、Unity 下的 iOS 性能与调试实践:兼容性挑战与应对策略(含 KeyMob 工具经验)
  • 声纹技术体系:从理论基础到工程实践的完整技术架构
  • 行为型:命令模式
  • 构建多模型协同的Ollama智能对话系统
  • vue3 + WebSocket + Node 搭建前后端分离项目 开箱即用
  • Win10秘笈:两种方式修改网卡物理地址(MAC)
  • 【软件】navicat 官方免费版
  • 【深度学习】16. Deep Generative Models:生成对抗网络(GAN)
  • java操作服务器文件(把解析过的文件迁移到历史文件夹地下)
  • 特伦斯 S75 电钢琴:重构演奏美学的极致表达
  • STM32-标准库-GPIO-API函数
  • Java 文件操作 和 IO(4)-- Java文件内容操作(2)-- 字符流操作
  • 机器学习与深度学习06-决策树02
  • Netty 实战篇:构建简易注册中心,实现服务发现与调用路由
  • 微信小程序(uniapp)对接腾讯云IM
  • 使用摄像头推流+VLC软件拉流
  • python魔法函数
  • XCUITest 是什么
  • 使用k8s服务进行端口代理
  • 灌水论坛系统总体设计文档
  • Mac M1编译OpenCV获取libopencv_java490.dylib文件
  • 使用 Let‘s Encrypt 和 Certbot 为 Cloudflare 托管的域名申请 SSL 证书
  • 【Python进阶】元编程、并发
  • 网络协议:[0-RTT 认证 ]
  • 单例模式的类和静态方法的类的区别和使用场景
  • flowable中流程变量的概念(作用域)