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. (转自Timon's wang blogs)C#实现web信息自动抓取
  2. 如何使用ui-router中的ui-sref将参数传递给控制器
  3. python语言标识符首字符不能是汉字_Python基本语法元素
  4. 【必看】Linux 或 Windows上实现端口映射
  5. Spring注解@Resource和@Autowired区别对比
  6. python is beautiful_Python list 和 str 互转
  7. 为什么80%的码农都做不了架构师?
  8. 49 MM配置-库存管理和实际库存-设置容差限制
  9. tcp压力测试工具_DNS压力测试工具之——DNSperf
  10. 大二学生基于Html+Css+javascript的网页制作——动漫设计公司响应式网站模板 (10个页面)
  11. 各省省际对外非金融类直接投资流量情况(2009-2018年)
  12. OSPF高等特性——Forwarding Address
  13. RS232接口转USB接口的通信方法
  14. 关于ES6中let 和 const 命令的用法以及注意事项:
  15. 最新版本Hadoop面试题
  16. 应用程序运行 Error 1706 错误
  17. C语言 找第一个只出现一次的字符
  18. jtopo 拓扑图的简单使用
  19. 中文 gbk gb2312 在线转换 编码码 对照表 自动转换 在线转换(推荐)
  20. Navicat导出pdf

热门文章

  1. jmeter json断言_Jmeter接口测试数据库断言的实现与设计
  2. github 搜索_Fzf:Golang开发的Github高星系统模糊搜索补全工具
  3. Java黑皮书课后题第8章:8.29(相同的数组)如果两个二维数组m1和m2具有相同的内容,则它们是相同的。编写一个方法,如果m1和m2相同的话,返回true
  4. 2009年浙江大学计算机及软件工程研究生机试真题
  5. AngularJS学习之旅—AngularJS Http(九)
  6. 九章算法班L3 Dynamic Programming Ⅰ
  7. mysql中union与union all的区别
  8. python爬虫(4)--Cookie的使用
  9. Nginx配置X-Forwarded-Proto
  10. Knockoutjs 实践入门 (2) 绑定事件