博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode] rotate image 旋转图片
阅读量:4623 次
发布时间:2019-06-09

本文共 1045 字,大约阅读时间需要 3 分钟。

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up:

Could you do this in-place?

 

方法一:常规思路: 将图片分为 行数/2 层,然后一层层进行旋转,由外到里。在这个过程中,比较关键的是下标的处理。可从n=3时得出一定的规律。每次旋转时,分析替换的元素对的下标和行、列的关系。如 i=0、j=0时 1:[0][0]换为 7:[2][0]。

代码如下:

1 class Solution { 2 public: 3     void rotate(vector
> &matrix) 4 { 5 int n=matrix.size(); 6 for(int i=0;i

方法二:参考博客中方法三。其大体的思路是,先求原矩阵的转置矩阵,然后反正转置矩阵中的每一行的元素,即可。转置矩阵:把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,记作AT 。转置矩阵的得到的方式是如下图所示,沿对角线,绿色箭头两端的元素对调,得到转置矩阵,然后每一行的元素反转,得到最后要求的矩阵。

 

 代码如下:

1 class Solution { 2 public: 3     void rotate(vector
> &matrix) 4 { 5 int n = matrix.size(); 6 for (int i = 0; i < n; ++i) 7 { 8 for (int j = i + 1; j < n; ++j) 9 {10 swap(matrix[i][j], matrix[j][i]);11 }12 reverse(matrix[i].begin(), matrix[i].end());13 }14 }15 };

 

转载于:https://www.cnblogs.com/love-yh/p/7100453.html

你可能感兴趣的文章
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
关于七牛进行图片添加文字水印操作小计
查看>>
DataSource数据库的使用
查看>>
Luogu4069 SDOI2016 游戏 树链剖分、李超线段树
查看>>
Java的内部类真的那么难以理解?
查看>>
一文搞懂Java环境,轻松实现Hello World!
查看>>
hash实现锚点平滑滚动定位
查看>>
也谈智能手机游戏开发中的分辨率自适应问题
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>
Python中Selenium的使用方法
查看>>
三月23日测试Fiddler
查看>>
20171013_数据库新环境后期操作
查看>>
SpringMVC中文件的上传(上传到服务器)和下载问题(二)--------下载
查看>>
Socket & TCP &HTTP
查看>>
osip及eXosip的编译方法
查看>>
Hibernate composite key
查看>>