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;}}   }
};

每天一道LeetCode-----顺时针旋转n×n矩阵90度相关推荐

  1. 矩阵顺时针旋转90度

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! ---- ...

  2. 编写程序python、实现将矩阵顺时针旋转90°_Java实现矩阵顺时针旋转90度的示例...

    实现矩阵的转置较为容易,只需要将纵横下标互换即可.实现矩阵旋转稍微麻烦一点. 解题思路: 矩阵转换90度,则原矩阵的纵下标转变为新矩阵的横下标:原矩阵的横下标转变为新矩阵的纵下标,并且顺序相反. pu ...

  3. 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转

    有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转 ...

  4. LeetCode——Rotate Image(二维数组顺时针旋转90度)

    问题: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwis ...

  5. python将矩阵顺时针旋转90度_在Python中将方形矩阵逆时针旋转90度的程序

    假设我们有一个正方形矩阵,我们必须将其逆时针旋转90度.147 258 369 那么输出将是789 456 1个23 为了解决这个问题,我们将遵循以下步骤-如果矩阵为空,则返回一个空白列表 n:=矩阵 ...

  6. python将矩阵顺时针旋转90度_python实现顺时针打印矩阵

    面试题之顺时针打印矩阵,Python实现,供大家参考,具体内容如下 问题描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,输入如下矩阵: 则依次打印出数字1,2,3,4,8, ...

  7. python将矩阵顺时针旋转90度_python 二维数组90度旋转的方法

    如下所示: #!/usr/bin/env python #-*- coding: utf-8 -*- """ [0, 1, 2, 3] [0, 1, 2, 3] [0, ...

  8. 【Android RTMP】NV21 图像旋转处理 ( 图像旋转算法 | 后置摄像头顺时针旋转 90 度 | 前置摄像头顺时针旋转 90 度 )

    文章目录 安卓直播推流专栏博客总结 一. 后置摄像头顺时针旋转 90 度 二. 前置摄像头顺时针旋转 90 度 三. NV21 格式图像旋转代码 安卓直播推流专栏博客总结 Android RTMP 直 ...

  9. 【Android RTMP】NV21 图像旋转处理 ( 问题描述 | 图像顺时针旋转 90 度方案 | YUV 图像旋转细节 | 手机屏幕旋转方向 )

    文章目录 安卓直播推流专栏博客总结 一. NV21 图像格式与 Camera图像传感器方向问题 二. NV21 图像格式视频旋转 1. 图像旋转问题及解决方案 ( 顺时针旋转 90 度 ) 2. NV ...

最新文章

  1. 单片机值得学吗?会单片机能找什么工作?
  2. SQL 语句中 left join 后用 on 还是 where,区别大了!
  3. zblog php版调用代码,zblog PHP分类列表调用方法
  4. 深度学习-机器学习(神经网络的应用 下)
  5. (28)FPGA面试技能提升篇(SATA接口)
  6. 使用plsql创建oracle,在Oracle下使用PLSQL Developer创建简单的触发器
  7. Android常用开发网址(持续更新)
  8. AcWing 789. 数的范围 (整数二分)
  9. Gmail最新功能实测:离线版上线增加手势(多图)
  10. jar编译成exe可执行文件【图文教程】
  11. 网络爬虫-爬取飞常准航班信息
  12. 最有效的清理C盘/win10如何给系统盘瘦身
  13. FreeCAD 导出STL格式文件格式
  14. 转载:技术大停滞——范式春梦中的地球工业文明5:台阶前的坑:人类社会的宿命
  15. 前端--CSS选择器,盒子模型学习
  16. 硕士毕业去一线城市的企业好,还是去三线城市做公务员好?
  17. 服务器不能复制粘贴文件的处理方式
  18. 修改本机的 Host 文件
  19. java泡妞代码_java泡妞小程序
  20. 【mysql】mysql 常用建表语句

热门文章

  1. uniny 物体运动到一个点停止_Unity3D中的逐点运动
  2. Java黑皮书课后题第6章:*6.6(显示图案)编写方法显示如下图案:public static void displayPattern(int n)
  3. C语言学习之一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高。
  4. c++ STL find search
  5. Android初级教程获取手机系统联系人信息
  6. 分享一个简单程序(webApi+castle+Automapper+Ef+angular)
  7. Linux 命令[3]:cd
  8. 【网络通信与信息安全】之深入解析两台主机之间的通信过程和原理
  9. 【数据结构与算法】之深入解析“预测赢家”的求解思路与算法示例
  10. 解决安装ROS 时rosdep update 问题(time out)