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的更多相关文章
随机推荐
- SQLite 分离数据库(http://www.w3cschool.cc/sqlite/sqlite-detach-database.html)
SQLite 分离数据库 SQLite的 DETACH DTABASE 语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的.如果同一个数据库文件已经被附加上 ...
- Hive-RCFile文件存储格式
在新建Hive表时,可以使用stored as rcfile来指定hive文件的存储方式为RCFile. 一.RCFile文件结构 下图是一个RCFile的文件结构形式. 从上图可以看出: 1)一张表 ...
- PullToRefreshScrollView 嵌套RecyclerView实现特卖列表倒计时抢购
不久之前,我们谈到了通过Handler与timer及TimerTask结合实现倒计时抢购列表,那个是PullToRefreshListView实现的,今天要讲的是PullToRefreshScroll ...
- T-SQL中的APPLY用法(半翻译)
本文接上文:T-SQL 中的CROSS JOIN用法(半翻译) 同样可用于微软认证70-461: Querying Microsoft SQL Server 2012考试的学习中. --------- ...
- javascript之Style对象
Background 属性 属性 描述 background 在一行中设置所有的背景属性 ba ...
- Dynamics CRM2015 非基础语言环境下产品无法新建的问题
该现象出现在2015版本上,之前从没注意过这个问题不知道以前的版本是否存在. 我的安装包的基础语言是中文,第一张图有添加产品的按钮,切换到英文环境下后就没有了,一开始以为是系统做了隐藏处理,但用工具查 ...
- linux C++多线程操作文件&输出加锁
下述demo将指定目录下文件存入vector,然后一分为二交给两个线程(threadTask1,threadTask2)去分别处理,对输出函数printDirent加锁防止紊乱. #include & ...
- SSH网上商城---使用ajax完成用户名是否存在异步校验
小伙伴在上网的时候,需要下载或者观看某些视频资料,更或者是在逛淘宝的时候,我们都需要注册一个用户,当我们填写好各种信息,点击确定的时候,提示用户名已经存在,小编就想,为什么当我们填写完用户名的时候,她 ...
- Java进阶(三十九)Java集合类的排序,查找,替换操作
Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...
- Android实战之ListView复选框
项目中有用到复选框的例子,啊啊......在网上查找有关资料,大多都是过于繁琐,所以自己决定写个这个方面的demo... 先给个效果图: 在ListView中添加复选框主要注意以下几个问题: 1.Li ...