48. 旋转图像

【忍者算法】从照片旋转到矩阵变换:探索图像旋转问题|LeetCode 48 旋转图像 观察旋转前后元素位置的对应关系寻找可以分解的子操作(如翻转) 阅读详情

1.题目

在这里插入图片描述在这里插入图片描述

2.解法

class Solution {    
public void rotate(int[][] matrix) {        
	int size = matrix.length;
        // 先翻转行和列        
        for (int i = 0; i < size; i++)             
        	for (int j = i; j < size; j++) {                
        		int tmp = matrix[i][j];                
        		matrix[i][j] = matrix[j][i];                
       			 matrix[j][i] = tmp;            }       
         // 再反转行        
         for (int i = 0 ; i < size; i++)             
         	for (int j = 0; j < size / 2; j++) {                
         		int tmp = matrix[i][j];                
	        	matrix[i][j] = matrix[i][size - j - 1];                
	         	matrix[i][size - j - 1] = tmp;            }
                 
}}

第一次循环为N+N-1+…+1 = N(1+N)/2, 第二次循环为N*N/2,
两次综合为O(N^2), 空间复杂度为O(1)

3.思考

计算转置矩阵时,j每次从i开始,行翻转时,j只有size/2

Android Qcom USB Driver学习(十三) 该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) Android Qcom USB Driver学习(八) Android Qcom USB Driver学习(九)deals with the USB Power Delivery resources used by one or more ports on the basis of the local device policy the basis of the local device policy.opera 阅读详情

相关推荐

传感器采集信息的频率(采样频率)

较高的采集频率通常能提供更详细的信息,但也会增加数据处理和存储的负担。在某些应用中,较高的采样频率可能是必要的,而在其他情况下,则可能会选择适当的低采样频率以降低功耗和数据处理压力。传感器采集信息的频率(采样频率)是指传感器在一定时间内对输入信号进行采样的次数。对于一些需要快速检测和响应的应用,如运动传感器、声音传感器等,高采样频率是至关重要的。高采样频率通常需要更多的功耗和更大的存储容量,因为产生的数据量更大。例如,对于快速运动的对象,较低的采样频率可能无法捕捉到运动的真实轨迹。

chen的博客 5350

力扣48.旋转图像

力扣48.旋转图像这道题要求把给定矩阵旋转90度,并且不允许使用额外矩阵来完成旋转图像。于是这道题只能使用原地旋转的方法来解决。

沉迷写代码的程序猿的博客 709

【Godot】实现对话系统

在 Godot 中实现对话系统(Dialogue System)是游戏开发中的常见需求。Godot本身自带的的灵活性和轻量级脚本语言 GDScript 使得实现对话系统变得相对简单。以下是实现一个基础对话系统的示例。(语言为GDScript但高亮选择Python因为类似)通过 Godot 和 GDScript,我们可以给我们的游戏实现一个对话系统。从简单的文本显示到复杂的分支对话,Godot 提供了足够的灵活性来满足我们的需求。如果需要更高级的功能,可以尝试使用现成的插件如 Dialogic。

Octopus2077的博客 2526

LeetCode48-旋转图像

LeetCode48-旋转图像 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2]...

lyd1995的博客 321

半导体AMHS系统振动控制技术演进:从0.5G到超低振动的工艺革命

在半导体制造进入埃米级时代后,AMHS的振动控制能力将成为区分厂商技术等级的标尺。国内企业通过“弹性机械设计-混合主动控制-智能调度”的三重创新,正逐步突破0.2G阈值,支撑12英寸晶圆厂向3nm/2nm制程升级。未来,振动抑制不再仅是物流系统的性能参数,而是与光刻、刻蚀等核心工艺深度耦合的基础能力,这将重塑半导体设备产业的竞争格局。

m0_60674045的博客 1586

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战)

本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。

weixin_29015899的博客 565

[LeeCode] 48.旋转图像

48.旋转图像 难度:Medium 题目描述: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,

WchStrife的博客 156

leetcode134 加油站

题目如下 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输...

ayang818 's blog 234

[LeeCode] 48. 旋转图像

这三种方法,只有第二种符合咱们本题的要求,因为本题明确要求用原地旋转实现。但是我们今天还是按顺序讲解,主要是讲完第一种实现方案会对大家了解第二种有帮助。一、使用辅助数组(这是最容易想到和最容易实现的,但是它并符合咱们的题目要求)。我们需要使用一个和 matrix 大小相同的辅助数组。时间复杂度:O(N2),其中 N 是 matrix 的边长。旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。二、原地旋转 (这是最符合本题要求的实现方式)使用另一个矩阵来旋转图像。

wamp0001的博客 976

本地生成无限量的AI图像和视频——无需网络,无限制,本地人工智能图像和视频生成的实用指南

我们将使用ComfyUI,这是一个功能强大的基于节点的 AI 图像和视频生成可视化界面。如果您是 ComfyUI 的新手,请不要担心。ComfyUI是什么?ComfyUI 是一款可视化工具,可让您在自己的计算机上生成 AI 图像和视频。您无需一次性理解所有内容。在本指南中,我们将从现成的工作流程入手,逐步帮助您建立信心。乍一看,内容似乎很庞杂——但本指南将着重于:-简单的工作流程-预构建示例-最少的配置我想向你展示使用这个工具最简单的工作流程。

iCloudEnd的博客 1821

飞腾平台(FT2000/4 D2000/8)配置GPIO引脚

飞腾平台配置CPU的引脚为GPIO工作模式的方式有永久型和暂时型: - 永久型是通过UEFI中的MmioWrite32函数来实现的,该方法可以在UEFI阶段就对复用引脚的工作模式配置为GPIO,并且在进入操作系统后仍然不会发生便会; - 临时型是通过rw工具,在系统下手动修改复用引脚的工作模式,该方法在系统重启后会失效,所以是暂时型的。

qq_30135687的博客 5617

LeetCode 48:旋转图像

目录LeetCode 48:旋转图像题目描述解题 LeetCode 48:旋转图像 题目描述 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 【示例 1】 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 【示例 2】 给定 matrix = [ [ 5, 1, 9,11], [ 2

s_Shune 376

华为OD机试真题 新系统 2026-04-19 C语言 实现【8位LED控制器】

有一个8位LED控制器,包含8个LED灯(编号0-7),初始状态全灭,用8位二进制表示为:00000000。控制器可以接收以下三种指令: Lx:L表示点亮操作,x表示LED的编号(0一7),操作得到的结果是:点亮第x个LED灯,把状态设为1。 Dx:D表示熄灭操作,x表示LED的编号(0-7),操作得到的结果是:熄灭第x个LED灯,把状态设为0。 Tx:T表示切换操作,x表示LED的编号(0-7),操作得到的结果是:切换第x个LED灯的状态,若状态为0则变为1,为1则变为0。 现在给定一组指令字符串(0<

MISAYAONE的博客 149

leetcode 48.旋转图像

leetcode 48.旋转图像 从线性代数的角度,旋转矩阵有其他解法,此处仅考虑单纯的swap操作实现的旋转图像 再看看题目,重点要求原地旋转,换句话说不可以使用额外矩阵来做中间存储再写回,因此直接循环赋值的做法放弃。 要求整体顺时针旋转90度,此时我们只考虑单个元素的转移策略。由此三阶矩阵可以分为两层考虑,即最外面一层和5单独的一层,同理考虑二阶矩阵为一层,四阶也为两层,五阶为三层,可以推导公式,level = (n + 1) / 2 所以我们需要每层做个循环,然后每层单独处理。 再考虑每个层内部

CJQ99419的博客 293

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Leetcode 48.旋转图像

Leetcode 48.旋转图像 题目描述 给定一个 n×n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 来源:力扣(LeetCode) 解题思路 当没有好的方法的时候就用暴力和模拟 暴力是不可能了 只有模拟了 然后就是 爱的魔力转圈圈 一圈一圈的转到最后...

qq_28640193的博客 224

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode 48 旋转图像

leetcode 48 旋转图像 题目链接 思路: 如果使用辅助矩阵的话,难度并不大,但是题目要求使用O(1)的空间,所以就不能使用辅助矩阵。 不管用还是不用辅助矩阵,都应该先推一下公式: (x,y)旋转之后到了(y, n - x - 1),对于矩阵中的元素(x, y),如果直接把它赋值给(y, n - x - 1)的话,接下来把(y, n - x - 1)的元素旋转的时候,就会发现它的值已经在之前被覆盖了,所以需要临时变量保存。 注意到题目要求将矩阵顺时针旋转90°,那么旋转4次即可转回来, 对于(i,

qq_46111795的博客 228

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LeetCode 48. 旋转图像

题目:48. 旋转图像 类别:数组 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1],...

Coder Yang 179

LeetCode刷题之48.旋转图像

LeetCode刷题之48.旋转图像 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例: 示例 1: 给定 mat...

胡萝卜 221

Leetcode 48. 旋转图像

Leetcode 48. 旋转图像 题目说明 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10],

qq_33511971的博客 232

LeetCode 48. 旋转图像:原地旋转最优解法

本文解析了LeetCode第48题「旋转图像」的原地解法,重点介绍了按圈旋转、四元素循环交换的最优实现。该算法通过逐层处理矩阵,每次交换四个对应位置的元素,实现O(n²)时间复杂度和O(1)空间复杂度。文章详细拆解了代码逻辑,包括边界处理、圈数计算和核心交换步骤,并通过3×3矩阵实例演示了旋转过程。同时指出了常见误区如索引颠倒、赋值顺序错误等。最后还提供了另一种简洁解法思路(转置+反转)供参考。这种原地操作技巧对掌握数组类题目具有重要价值。

2401_86788218的博客 1057

48. 旋转图像(Rotate Image)

48. 旋转图像(Rotate Image)题解直接旋转复杂度分析PythonJava(待完成)转置矩阵的性质复杂度分析PythonJava(待完成) 题解 直接旋转 图像旋转,实际上是这四个位置上的数对应旋转。 因此,需要找到这四个位置索引的相互关系: matrix[i][j]→matrix[j][n−i−1]→matrix[n−i−1][n−j−1]→matrix[n−j−1][i]matr...

朱师傅的博客 594

力扣题解48. 旋转图像

力扣题解48. 旋转图像题解题思路代码结束语 题 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10

不想在做搬运工 339

leetcode48.旋转图像

给定一个 n×n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3]...

Livingdd的博客 183

LeetCode 48 旋转图像 Java实现 两种方法

本题考察了对矩阵操作的理解和实现能力。通过两种不同的方法,我们展示了如何高效地解决矩阵旋转问题。无论是分层旋转法还是数学变换法,都有其独特的优点,开发者可以根据实际需求选择合适的方法。

Lentr0py的博客 1158

leetcode48. 旋转图像

leetcode48. 旋转图像 传送门 题目:给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 public void rotate(int[][] m) { // 先沿对角线对换 for(int i = 0; i < m.length; ++i) for(int j = i; j < m[0].length

lonelyVM的博客 135
上一篇: 46.全排列
下一篇: 49. 字母异位词分组
念殊15
博客等级 码龄1天 17粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值