Leetcode: Rotate Image
2015-04-12 15:49
281 查看
题目:
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?
思路分析:
最笨的方法,重新开辟一个矩阵空间,做旋转。(题目要求最好能就地旋转)
更好的方法:先将矩阵上下对折,然后再沿对角线对折。
例如:
OK,开始写代码!
C++参考代码:
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 2 3 7 8 9 7 4 1 4 5 6 -> 4 5 6 -> 8 5 2 7 8 9 1 2 3 9 6 3
OK,开始写代码!
C++参考代码:
class Solution { public: void rotate(vector<vector<int> > &matrix) { if (matrix.empty()) return; int rows = int(matrix.size()); int cell = 0; //上下对折 for (int i = 0; i < rows / 2; ++i) { for (int j = 0; j < rows; ++j) { cell = matrix[i][j]; matrix[i][j] = matrix[rows - i - 1][j]; matrix[rows - i - 1][j] = cell; } } //对角线对折 for (int i = 0; i < rows; ++i) { for (int j = 0; j < i; ++j) { cell = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = cell; } } } };
相关文章推荐
- [LeetCode] Rotate Image
- [Leetcode]Rotate Image
- (leetcode)Rotate Image
- LeetCode(048) Rotate Image
- LeetCode 48 Rotate Image
- [leetcode] Rotate Image
- [C++]LeetCode: 68 Rotate Image
- [LeetCode] Rotate Image 解题报告
- LeetCode-48.Rotate Image
- Leetcode 细节实现 Rotate Image
- Leetcode:48. Rotate Image(数组选择90度)
- LeetCode 之 Rotate Image — C/C++ 实现
- [leetcode]Rotate Image, Matrix tranposition, matrix rotation 90 degree @ Python
- Leetcode Rotate Image
- 42 leetcode - Rotate Image
- Leetcode48——Rotate Image
- Leetcode Rotate Image
- Rotate Image -- LeetCode
- 【LeetCode】48. Rotate Image 解题报告(Python)
- LeetCode--Rotate Image(旋转图像)Python