每天一道LeetCode-----顺时针旋转n×n矩阵90度
来源:互联网 发布:中印陆军对比知乎 编辑:程序博客网 时间:2024/05/28 23:09
Rotate Image
原题链接Rotate Image
原地旋转n × n矩阵90度
正方形的旋转问题可以一圈一圈的旋转,先旋转最外层,然后内层,再内层。需要旋转的次数是矩阵行数的一半。旋转过程中元素的交换可以多次取值找规律,方法如下
matrix[i][j] -> matrix[j][n-1-i];matrix[j][n-1-i] -> matrix[n-1-i][n-1-j];matrix[n-1-i][n-1-j] -> matrix[n-1-j][i];matrix[n-1-j][i] -> matrix[i][j];
实际上就是位置[i][j]旋转90度后的新位置是[j][n-i]
代码如下
class Solution {public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); for(int i = 0; i < n / 2; ++i) { for(int j = i; j < n - 1 - i; ++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; } } }};
阅读全文
0 0
- 每天一道LeetCode-----顺时针旋转n×n矩阵90度
- M*N矩阵顺时针旋转90度
- 每天一道LeetCode-----将m × n矩阵按照顺时针螺旋顺序转化成一维数组
- 【数组】将N*N的int类型矩阵顺时针旋转90度
- 顺时针旋转N*N阶矩阵储存的图片
- C#实现N*N的顺时针旋转矩阵
- 人人都来写算法 之 矩阵顺时针旋转90度,空间效率O(1),时间效率O(n*n)
- 【重构】人人都来写算法 之 矩阵顺时针旋转90度,空间效率O(1),时间效率O(n*n)
- 【每天一道leetcode】1:N-Queens
- 每天一道LeetCode-----n皇后问题
- 矩阵顺时针旋转90度
- 矩阵顺时针旋转90度
- 矩阵顺时针旋转90度
- 矩阵顺时针旋转90度
- 矩阵顺时针旋转90度
- 将矩阵顺时针旋转90度 leetCode:Rotate Image
- 顺时针打印m*n矩阵
- n*n字符矩阵旋转
- 二叉树-1
- 创行调查问卷
- C/C++——学习资料(更新........)
- 感想篇:6.3)3d打印与可视化交流技术
- lua 基础语法
- 每天一道LeetCode-----顺时针旋转n×n矩阵90度
- Rstudio-处理缺失值的方法
- c++调用lua,lua调用c++
- Codejam之Bathroom Stalls
- 更改ssh服务远程登录配置
- STARKs, Part I: 多项式证明
- mybatis-plugins mybatis-tools
- JDK容器学习之TreeMap (二) : 使用说明
- System类