LeetCode图解 RotateImage & Array类型问题

Numpy 进阶(二) —— 对图像进行角度旋转、水平、垂直镜像操作! 提出需求 用 Python 对图片做旋转、镜像操作时,小伙伴们可能首先想到的是 PIL 、Opencv 等图像处理程序包,只需要一行代码就可以实现目标转换。 这样做的确能够实预期目标,但图像是怎么实现旋转的,这个过程对我们来说就像一个黑盒子,很陌生,为了了解图像变换机制,这篇文章借助 Numpy 数组来实现图像翻转等操作 原理讲解 一张图片的本质是由 a(长) × b(宽) 与图像一样大小的矩阵的... 阅读详情

1.问题描述

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

2.测试用例
用例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],[13,3,6,7],[15,14,12,16]]
输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

用例3:

输入:matrix = [[1]]
输出:[[1]]

用例4

输入:matrix = [[1,2],[3,4]]
输出:[[3,1],[4,2]]

3.提示

matrix.length == n
matrix[i].length == n
1 <= n <= 20
-1000 <= matrix[i][j] <= 1000

4.图解-代码
1.数学方法:矩阵转置 + 反转
图解

code
public void rotate(int[][] matrix) {
        matrixPrint(matrix);
        if (matrix.length < 2) {
            matrixPrint(matrix);
            return;
        }
        for (int i = 0; i < matrix.length; i++) {
            for (int j = i; j < matrix.length; j++) {
                exchangeMatrix(matrix, i, j);
            }
            reverse(matrix[i]);
        }
        matrixPrint(matrix);
}

public void matrixPrint(int[][] matrix) {
        for (int[] ints : matrix) {
            for (int anInt : ints) {
                System.out.print(anInt + "\t");
            }
            System.out.println();
        }
}

public void reverse(int[] nums) {
        int start = 0;
        int end = nums.length - 1;
        while (start < end) {
            exchange(nums, start, end);
            start++;
            end--;
        }
}

public void exchangeMatrix(int[][] nums, int i, int j) {
        int tmp = nums[i][j];
        nums[i][j] = nums[j][i];
        nums[j][i] = tmp;
}
分治-矩阵旋转
图解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IDpjlwg5-1637061251345)(/Users/xq/Library/Application Support/typora-user-images/image-20211116190656615.png)]

code
public void rotate(int[][] matrix) {
        int n = matrix.length;
        matrixPrint(matrix);
        if (n < 2) {
            matrixPrint(matrix);
            return;
        }
        for (int i = 0; i < (n + 1) / 2; i++) {
            for (int j = 0; j < n / 2; j++) {
                int tmp = matrix[i][j];
                matrix[i][j] = matrix[n - 1 - j][i];
                matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j];
                matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i];
                matrix[j][n - 1 - i] = tmp;
            }
        }
        matrixPrint(matrix);
}

public void matrixPrint(int[][] matrix) {
        for (int[] ints : matrix) {
            for (int anInt : ints) {
                System.out.print(anInt + "\t");
            }
            System.out.println();
        }
}
python自动化:照片翻转90度(附完整源码) 阅读详情

相关推荐

python图像处理(旋转)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 除了图像镜像之外,另外一个经常遇到的、差不多的功能就是图像旋转。旋转分成顺时针旋转和逆时针旋转两种情况。但是对于isp来说,一般旋转的角度都是提前设置好的,比如只支持90、180、270度旋转,并不支持其他角度的旋转。 在此,我们可以先看一下旋转的效果是什么样的,如下图所示。此外因为图像的长和宽本来就是512,所以旋转之后长和宽本身没有改变。

嵌入式-老费,一个分享专业嵌入式知识的blog 2828

48. 旋转图像

给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 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],[13,3,6,7],[15,14,12,16]] 输出:...

allway2的博客 525

爬取中国空气质量在线监测分析平台

1.准备,爬取的链接地址 https://www.aqistudy.cn/html/city_detail.html 2.分析 a.当打开链接后,数据已经设置好了,说明里面大部分都是js通过ajax调用的, b.打开f12分析代码 通过捕获到的数据包,发现当前请求为ajax,携带着一个为d的参数且该请求携带的数据是加密过的,并且响应也是加密过的 c.这时候的问题就是...

Mr Right 6371

Python如何将图像向右旋转90度

如果直接套用PIL和OpenCV3图像处理库的旋转函数,旋转后保存的图像会留黑边,下面给出我实际测试后旋转图像不留黑边的代码: Opencv3库代码 # 方法一:将图像向右旋转90度 file1 = 'E:/Kaggle Competiton/Humpback Whale Identification/train_fluke/w_0a0c768/aa...

专注计算机视觉算法训练,算法优化部署以及SDK开发的知识分享。 3337

HFSS微带线仿真从零到一:材料参数与求解设置优化指南

在射频电路设计中,微带线仿真涉及电磁场求解与传输线理论,其精度高度依赖材料参数和求解设置。相对介电常数、损耗角正切和导体电导率等参数直接影响特性阻抗与插入损耗,而求解频率、网格划分和参数扫描则决定仿真效率与收敛性。合理设置这些参数可显著提升S参数准确性,避免设计迭代。应用场景包括天线馈线、滤波器和微波互连。本文基于HFSS微带线仿真实践,系统讲解材料选择与参数优化全链路,帮助工程师快速复现可靠模型。

weixin_29192211的博客 79

ModusToolbox 实战避坑指南|从环境配置到项目构建

本文是一份详尽的ModusToolbox实战避坑指南,手把手教你从环境配置到项目构建。重点解决了Windows系统下的安装、关键环境变量CY_TOOLS_PATHS的设置、PowerShell执行策略调整以及利用URL Modifier工具优化GitHub资源下载等核心难题,旨在帮助开发者,特别是英飞凌(Infineon)芯片用户,顺利搭建开发环境并成功运行第一个Hello World程序。

t1u2v的博客 591

原生JS实现图片旋转功能

废话不多说,直接进入主题 原生JS代码实现图片旋转的效果,下面两条是功能 单击鼠标左键图片向左旋转45°, 单机鼠标右键图片向右旋转45° 成功后的效果(视频放不了!) 上JS代码 html部分(只是一个简简单单的图片) &lt;img src="img/1.jpg" id="img01" /&gt; JS代码部分 &lt;script&gt; //记录旋转角度的变量 var current = 0; //鼠标右键点击事件 img01.oncontextmenu = fu

m0_52334927的博客 9648

深入解析DMR协议中的4-CPFSK调制技术与实现

本文深入解析了DMR协议中采用的4-CPFSK调制技术。该技术凭借其连续相位、恒包络的特性,在有限的12.5kHz信道带宽内实现了稳健的通信,有效对抗干扰并提升功放效率,是DMR数字对讲机清晰、稳定通信的核心保障。文章详细阐述了其原理、实现细节及在协议栈中的协同作用。

weixin_29306875的博客 230

基于python-cv2图片翻转(90度)和旋转

基于python-cv2图片翻转(90度)和旋转。

weixin_67147824的博客 1767

从零构建:Esp32+Esp-IDF驱动ST7789屏幕并集成LVGL图形库

本文详细介绍了如何从零开始使用Esp32和Esp-IDF驱动ST7789屏幕并集成LVGL图形库。内容涵盖环境准备、SPI驱动配置、屏幕初始化、LVGL图形库集成及常见问题排查,帮助开发者快速实现高效稳定的显示解决方案。

weixin_42657024的博客 524

三菱PLC FX3U温度控制系统案例

U0\G100是平均次数的设置,设置为100个数据取平均,这样数据显示更加稳定,通道1的数据显示再U0\G10里面,温度模块的数据对应是0~150°输出0~10V,对应到0~10000的数据10000是150°的66.667倍,因此把数据传送到D0后转换成浮点数,再去除以66.667,就得到实际的温度了,数据存放到D2。触摸屏软件使用EBpro软件,设计界面如下,右边的是温度的实时曲线图,左边的是温度报警表,当当前温度超过了报警温度这种时,就会在这个表格上显示对应对应的报警。(1)实时显示温度值;

u010670857的博客 4059

python 让图片顺时针旋转90度另存

python 让图片顺时针旋转90度另存

weixin_50064049的博客 886

DIY电磁炉核心驱动方案:IR2153PBF自振荡半桥芯片实战指南(附电路图)

本文详细介绍了IR2153PBF自振荡半桥驱动芯片在DIY电磁炉核心驱动方案中的实战应用。该芯片集成了振荡器与600V高压驱动能力,仅需少量外围元件即可生成互补带死区的PWM信号,极大简化了半桥逆变电路设计。文章深入解析了其工作原理、关键参数,并提供了完整的电路设计、PCB布局指南及调试步骤,帮助电子爱好者构建稳定高效的感应加热驱动核心。

beer8的博客 583

js如何实现图片的旋转(点击旋转90或-90)

要求: 1.点击按钮实现向左或者向右旋转90度,点击四次也就是直至旋转到360度,恢复原状, 2,点击图片实现向某个方向旋转, 两种要求逻辑是一样的,简单好用,就事css的一种属性而已,下面话不多说,贴代码 这事html代码,简单点就是struts2的if-else标签 ,点击按钮实现旋转 下面事js代码,注意看哦!!!!!! 就是这么简单有木有,还不用心记下来, 下面就是点...

qq_43182556的博客 1万+

(四) OpenClaw-Skill技能全面了解和自定义技能

OpenClaw Skills是提升AI代理功能性的关键模块。本文系统介绍了Skills的核心概念、获取渠道和创建方法。Skills作为标准化指令集合,能让OpenClaw从单纯理解升级为实际执行任务,相比传统System Prompt具有模块化、可复用等优势。用户可通过Clawhub官方商店、GitHub社区等渠道获取5700+现成技能,或按需开发自定义Skill。文章详细演示了创建&quot;Hello World&quot;示例技能的完整流程,包括编写Python脚本、配置SKILL.md文件、部署。

直到世界的尽头 8295

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

如何用js实现图片旋转

前端js实现图片旋转问题,旋转90度、180度、270度...

weixin_45689946的博客 3586

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JS实现图片旋转,前端实现图片旋转

JS实现图片旋转,前端实现图片旋转

weixin_43992507的博客 1770

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python面试宝典第34题:旋转图像

给定一个n × n的二维矩阵matrix表示一个图像,请你将图像顺时针旋转90度。 注意:你必须在原地旋转图像。这意味着,你需要直接修改输入的二维矩阵,而不能使用另一个矩阵来旋转图像。

hope_wisdom的技术博客 1042

python图像增强之随机翻转或随机旋转

假设输入的图像数据为img,标签label组成为classid、x、y、w、h,因此labels维度为Nx5。假设旋转前的坐标和尺寸为x0、y0、w0、h0。x、y、w、h均为归一化后坐标,即已经除以图像自身的宽高。以下操作需要用到numpy矩阵操作和random随机操作。引入随机的概念主要是为了便于进行随机增强,即随机翻转或随机旋转。

叶子的博客 9000

JS实现图片左右旋转90度

话不多说,直接上代码,可以直接复制到html文件运行看效果 代码如下: &lt;html&gt; &lt;head&gt; &lt;title&gt;旋转图片&lt;/title&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;meta name="viewport" content="initial-scale=1.0, user-scalable=no" /&g

u013899802的博客 9353

纯样式或使用JS的canvas实现图片旋转

原理大致是,将img图片转为canvas对象,输出新的图片路径,回显到img标签中。点击旋转,图片也跟着旋转。共有4个方向,分别是0,90,180,270度。实际情况也是可以旋转的,简单方便,只适用于临时查看。祝你能成为一名优秀的WEB前端开发工程师!如果是按照我的思路,那自然就是使用。以上在vue项目中使用无任何问题。

商务合作 / 项目定制开发 / 前端一对一培训、答疑 3828

逆时针矩阵算法描述

算法描述 自然语言描述 1、初始化一个i行j列的二维数组作为原矩阵,并对该数组填充数据;初始化一个j行i列的二维数组作为逆时针矩阵,用于输出逆时针矩阵 2、原矩阵的第i行变为旋转矩阵的第i列; 原矩阵的第j列变为旋转矩阵的倒数第j行; 3、或可以理解为先转置原矩阵,后按转置矩阵的行数i逆序输出,先输出转置矩阵的最后一行,一直到转置矩阵的最后一行,便得到旋转后的矩阵。 伪代码 Init a[i][j],b[j][i] for(m=0;m&lt;i;m++) { for(n=0;n&lt;j;n

m0_51290571的博客 594

【LeetCode】48. 旋转图像 (JavaScript)

原题 难度中等1140收藏分享切换为英文接收动态反馈 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 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],[13,3,6,7],[15.

xsm_656的博客 1461

【Python】图片操作

img = img.transpose(Image.ROTATE_90) #替换角度即可(180/270)

LittleAria的博客 575

【LeetCode】48. 旋转图像

​给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。使用另一个矩阵来旋转图像。

Ekertree的博客 405
上一篇: 二分查找 while & 递归
下一篇: Leetcode NO.74 Search a 2D Matrix & binary search
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值