Leetcode_48_Rotate Image
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/44216867
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?
思路:
(1)题意为给定一个n*n的矩阵代表一幅图像,求将其顺时针旋转90度后所得矩阵。
(2)该题主要考察对二维数组的操作。n*n的矩阵显然是一个正方形,其实可对该题进行扩展为任意m*n的矩形,效果差不多。将n*n的矩阵形式化为一个n*n的二维数组,对二维数组的旋转就转化为对二维数组中元素位置的调整了,通过对比发现转换前后对应关系为:result[i][j] = matrix[row-1-j][i],其中result为新创建的数组用于存储转换后的
元素,matrix为目标数组。需要注意的是,得到result数组后还需将其中的元素赋值到原始数组中,才能达到对原始数组的旋转。详情见下方代码。
(3)希望本文对你有所帮助。
算法代码实现如下:
/**
* @author liqqc
* @param matrix
* @return
*/
public static int[][] rotate(int[][] matrix) {
if(matrix.length==0 ||matrix[0].length==0){
return null;
}
int row = matrix.length;
int col = matrix[0].length;
int[][] result = new int[row][col];
//第一行变为最后一列
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
result[i][j] = matrix[row-1-j][i];
}
}
for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result.length; j++) {
matrix[i][j] = result[i][j];
}
}
return matrix;
}
Leetcode_48_Rotate Image的更多相关文章
随机推荐
- 查看4k对齐,激活.net framework 3.5
查看是否4k对齐 Win+R,打开运行窗口,在窗口中输入“msinfo32",组件”--“存储”--“磁盘”.然后可以在右边栏看到“分区起始偏移”,我们图例中有2个数值,分别是:32256字 ...
- RE模块疑问
待处理: >>> re.findall(r'[-+]*\d+(?:\.\d+)?','-++++---+123.012') ['-++++---+123.012'] >> ...
- 文件自动备份和同步bypy和syncthing
http://blog.csdn.net/pipisorry/article/details/52464402 Linux定时备份数据到百度云盘 sudo pip3 install requestss ...
- 微信小程序基础之新建的项目文件图解
昨天发布的文章,感觉对于学习不够直观,所以今天重点在图标上进行了详细的对应介绍,稍后会尝试开发小程序控件的使用.转载请标注出处,谢谢!
- Struts 1之DispatchAction
DispatchAction是struts 1 的内置通用分发器 import org.apache.struts.actions.DispatchAction; public class UserA ...
- 利用ScrollView滑动属性实现点击查看更多
利用ScrollView的滚动实现点击查看更多 效果图 更新内容布局 <ScrollView android:id="@+id/sv_des" android:layout_ ...
- 使用github搭建网站
http://blog.csdn.net/pipisorry/article/details/51707366 使用github建站 github设计了Pages功能,允许用户自定义项目首页,用来替代 ...
- 1.Cocos2d-x-3.2编写3d打飞机,粒子管理器代码
Cocos2d-x中的一个单例效果: #ifndef __Moon3d__ParticleManager__ #define __Moon3d__ParticleManager__ #inclu ...
- 【Netty源码分析】发送数据过程
前面两篇博客[Netty源码分析]Netty服务端bind端口过程和[Netty源码分析]客户端connect服务端过程中我们分别介绍了服务端绑定端口和客户端连接到服务端的过程,接下来我们分析一下数据 ...
- 15 Action View 以及监听 的使用
menu 代码 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- a ...