20、矩阵-旋转图像

 

解题方法


这个问题是关于如何将一个矩阵顺时针旋转90度。为了解决这个问题,我们可以采用以下步骤:

转置矩阵:首先,我们需要对矩阵进行转置。转置意味着将矩阵的行变成列,列变成行。对于矩阵中的每个元素matrix[i][j],在转置后它会移动到位置matrix[j][i]。

翻转每一行:转置矩阵后,我们需要将每一行的元素翻转,即第一个元素和最后一个元素交换位置,这样对于每一行都进行操作,直至中间的元素。

以题目中的例子来说:

原始矩阵:

1 2 3
4 5 6
7 8 9
转置后的矩阵:

1 4 7
2 5 8
3 6 9
每行翻转后的矩阵:

7 4 1
8 5 2
9 6 3
这就是顺时针旋转90度后的矩阵。

代码如下:

class Solution {public static void rotate(int[][] matrix) {// 矩阵转置transpose(matrix);// 翻转每一行reverseRows(matrix);}private static void transpose(int[][] matrix) {int n = matrix.length;for (int i = 0; i < n; i++) {for (int j = i; j < n; j++) {// 交换元素 matrix[i][j] 和 matrix[j][i]int temp = matrix[i][j];matrix[i][j] = matrix[j][i];matrix[j][i] = temp;}}}private static void reverseRows(int[][] matrix) {int n = matrix.length;for (int i = 0; i < n; i++) {int start = 0;int end = n - 1;while (start < end) {// 交换行的首尾元素int temp = matrix[i][start];matrix[i][start] = matrix[i][end];matrix[i][end] = temp;start++;end--;}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620467.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux知识点(3)

文章目录 11. 进程间通信11.1 管道11.1.0 |11.1.1 匿名管道11.1.2 命名管道11.1.3 用匿名管道形成进程池 11.2 system V共享内存11.2.1 system V函数11.2.2 system 命令 11.3 system V消息队列11.4 system V 信号量 12. 进程信号12.1 前台进程和后台进程12.1.1 jobs12.1.2 fg &…

Python+Appium自动化测试(ios+Android)

一、软件安装 安装清单&#xff1a; JDKPythonnode.jsandroid-sdk(作者通过Android Studio安装)iOS-deploybrewlibimobiledevice依赖库ideviceinstallercarthage依赖库 appium-doctor&#xff08;安装后可在命令行中通过命令:appium-doctor检查还少啥&#xff09; WebDriverAg…

LOCK、ACC、ON、START的含义及正确使用

背景 前段时间在开发一个远程锁车的需求时&#xff0c;讨论到了电源状态的场景。由于初次进入汽车电子行业&#xff0c;对很多基础概念不清晰。当时听主机厂商的同事介绍一遍后&#xff0c;并不是很理解。于是趁着空闲&#xff0c;给自己充充电&#xff0c;也希望能够帮到有需…

每帧纵享丝滑——ToDesk云电脑、网易云游戏、无影云评测分析及ComfyUI部署

目录 一、前言二、云电脑性能测评分析2.1、基本配置分析2.1.1、处理器方面2.1.2、显卡方面2.1.3、内存与存储方面2.1.4、软件功能方面 2.2、综合跑分评测 三、软件应用实测分析3.1、云电竞测评3.2、AIGC科研测评——ComfyUI部署3.2.1、下载与激活工作台3.2.2、加载模型与体验3.…

GitHub repository - Watch - Star - Fork - Follow

GitHub repository - Watch - Star - Fork - Follow References 眼睛图标旁边写着 Watch 字样。点击这个按钮就可以 Watch 该仓库&#xff0c;今后该仓库的更新信息会显示在用户的公开活动中。Star 旁边的数字表示给这个仓库添加 Star 的人数。这个数越高&#xff0c;代表该仓库…

Web 前端 Javascript笔记2

1、数组 为什么需要数组&#xff1a;因为变量只能存储一条数据&#xff0c;但是储存多条数据 数组的声明方式 1、new let a1new Array() console.log(a1) 2、字面量 let a2[1,2,4,"k",true,"zhangsan",11] console.log(a2) 数组里面可以存放不同的数据类…

STM32H7的DMAMUX

STM32H7的DMAMUX 什么是DMAMUXDMA架构框图DMA requests from peripherals接口Trigger inputs 接口Interrupt 接口Synchronization inputs接口DMA Channels event接口DMA requests to DMA controllers接口请求发生器同步触发和请求复用器&#xff08;Request multiplexer&#x…

Slic3r切片软件使用解释

slic3r是一款非常专业的3D打印切片软件。使用它你能够轻松的讲3D打印出来&#xff0c;并且进行切片处理。是为数不多的3D打印软件之一。这个软件使用起来十分简单&#xff0c;基本上只要下载完成就能够使用&#xff0c;兼容性十分好&#xff0c;能够与各种打印机兼容。拥有从硬…

云端漫步:如何免费享受亚马逊云服务器的12个月奇妙旅程

前言&#xff1a; 废话不多说&#xff0c;开头就直接上体验链接 亚马逊科技 (免费试用产品专属链接)包括灵活的Amazon EC2云服务器、稳定的Amazon RDS数据库服务、可扩展的Amazon S3云存储空间等等常见云服务产品。福利很大&#xff0c;有需要的朋友赶紧冲冲冲&#xff01; 想…

vs2022断点调试怎么看堆栈帧,找异常位置

打一个断点以后&#xff0c;会出现如图报错 我们要怎么找到报错的语句&#xff1f;鼠标点击->堆栈帧->上一行运行的位置->直到找到错误出错如图所示&#xff1a; 跳转到&#xff0c;我们手写的代码&#xff0c;执行出错的位置

Unity(MVC思想)

MVC 一下演示使用MVC和不使用MVC的做法区别。 前两个没有使用MVC 主面板逻辑&#xff1a; mainPanel是该脚本名字 每个场景中不一定存在该面板&#xff0c;单纯的显隐需要去手动挂载过于麻烦。 所以自己读取创建面板出来(每个场景仅创建一次)&#xff0c;存下该面板&#xf…

基于SpringBoot的“口腔管理平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“口腔管理平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 口腔管理平台结构图 管理员登录界面图 个人中心界…