当前位置:网站首页>leetcode 48. Rotate Image 旋转图像(Medium)
leetcode 48. Rotate Image 旋转图像(Medium)
2022-08-04 16:15:00 【okokabcd】
一、题目大意
标签: 数组
https://leetcode.cn/problems/rotate-image
给定一个 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]]
输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
提示:
- n == matrix.length == matrix[i].length
- 1 <= n <= 20
- -1000 <= matrix[i][j] <= 1000
二、解题思路
一个元素每次90度旋转,旋转4次后回到原点,这样我们找出这四个点的坐标一切就简单了,令N=martrix.length-1:
(i, j)
(N-j, i)
(N-i, N-j)
(j, N-i)
为了旋转这四个元素,我们可以用一个临时变量保存其中一个元素,然后让几个元素依次赋值。
那么,一共有多少个这样的四元素组呢?这要分情况来看。两层遍历数组,第一层i 从0到n/2,第二层j 从j到n-i,这样遍历的元素为n/4或(n-1)/4;
三、解题方法
3.1 Java实现
public class Solution {
public void rotate(int[][] matrix) {
// 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
// 输出:[[7,4,1],[8,5,2],[9,6,3]]
// x表示行 y表示列
/** * i 0->n/2 0->2 * j i->n-i i->3-i * 00 01 02 03 * 11 12 * 从上到下 (j,n-i) * 从右到左 * * (j,n-i)<-(i,j) * (i,j)<-(n-j,i) * (n-j,i)<-(n-i, n-j) */
int temp = 0;
int n = matrix.length - 1;
for (int i = 0; i <= n / 2; i++) {
for (int j = i; j < n - i; j++) {
// 0行n列
temp = matrix[j][n - i];
matrix[j][n - i] = matrix[i][j];
matrix[i][j] = matrix[n-j][i];
matrix[n-j][i] = matrix[n-i][n-j];
matrix[n-i][n-j] = temp;
}
}
}
}
四、总结小记
- 2022/8/4 需要总结一下60多天的刷题了
边栏推荐
- 把boot和APP一起烧录进MCU
- An article to answer what is the product library of the DevOps platform
- Roslyn 在 msbuild 的 target 判断文件存在
- 可视化大屏丑?这篇文章教你如何做美观大屏!
- 地理标志农产品需双重保护
- 云存储硬核技术内幕——(8) 只缘身在此山中
- 【二叉树】根据描述创建二叉树
- Real-Time Rendering 4th related resource arrangement (no credit required)
- NFT blind box mining system dapp development NFT chain game construction
- 饿了么智能头盔专利获授权 进一步提升骑手安全保障
猜你喜欢
随机推荐
越来越火的图数据库到底能做什么?
在Markdown文件中快速插入本地图片
NFT blind box mining system dapp development NFT chain game construction
An article to answer what is the product library of the DevOps platform
HCIP笔记(7)
基本的SELECT语句
历史上的今天:微软研究院的创始人诞生;陌陌正式上线;苹果发布 Newton OS
Win10 无线网卡驱动感叹号,显示错误代码56
dot net core 使用 usb
Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED
The electromagnetic compatibility EMC protection study notes
Difference between GET and POST requests
在VMD上可视化hdf5格式的分子轨迹文件
inter-process communication
EMQ云端与局域网实现桥接功能
What is an artifact library in a DevOps platform?What's the use?
C#命令行解析工具
MySQL 性能调优和优化技巧
Summary of some pytorch knowledge points that have been updated for a long time
吴恩达机器学习[9]-神经网络学习