Rotate Image
2015-10-28 17:27
225 查看
题目名称
Rotate Image—LeetCode链接
描述
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?
分析
题目中要求我们在原来的二维数组上进行修改,不要使用额外的空间。代码是参考别人的,我这里做一下解释:
用到两层循环,最外层循环用来交换每一圈的数组值,因为每一圈上的数据交换都相同规律,所以内层循环用来交换一圈上所有需要顺时针旋转90°的值。
C++代码
[b]总结
一开始想找出所有位置经顺时针旋转90°之后的位置,但是没有找到通用的,这道题目也难在这里。
Rotate Image—LeetCode链接
描述
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?
分析
题目中要求我们在原来的二维数组上进行修改,不要使用额外的空间。代码是参考别人的,我这里做一下解释:
用到两层循环,最外层循环用来交换每一圈的数组值,因为每一圈上的数据交换都相同规律,所以内层循环用来交换一圈上所有需要顺时针旋转90°的值。
C++代码
class Solution { public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); int a = 0; int b = n-1; while(a<b){ for(int i=0;i<(b-a);++i){ swap(matrix[a][a+i], matrix[a+i]); swap(matrix[a][a+i], matrix[b][b-i]); swap(matrix[a][a+i], matrix[b-i][a]); } ++a; --b; } } };
[b]总结
一开始想找出所有位置经顺时针旋转90°之后的位置,但是没有找到通用的,这道题目也难在这里。
相关文章推荐
- Lua中使用二维数组实例
- C#使用二维数组模拟斗地主
- C#使用Matrix执行缩放的方法
- C#二维数组基本用法实例
- javascript的日期对象、数组对象、二维数组使用说明
- PHP 如何获取二维数组中某个key的集合
- 改写函数实现PHP二维/三维数组转字符串
- 如何使用Matrix对bitmap的旋转与镜像水平垂直翻转
- java 二维数组矩阵乘法的实现方法
- Swift中定义二维数组的方法及遍历方法示例
- C#和Java中二维数组区别分析
- php对二维数组按指定键值key排序示例代码
- js二维数组定义和初始化的三种方法总结
- Android中Matrix用法实例分析
- C语言中二维数组指针的简要说明
- php实例分享之二维数组排序
- php中二维数组排序问题方法详解
- js sort 二维数组排序的用法小结
- JS二维数组的定义说明
- Java编程中二维数组的初始化和基本操作实例