【题解】【矩阵】【回溯】【Leetcode】Rotate Image
2014-02-06 17:18
381 查看
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?
思路:
每次转着圈挪四个元素,这步只需要一个int的额外空间,想象一个方阵
哦不好意思,这个太不专业了,咱换个大一点6×6的
草图上比划比划第二层的元素怎么移动,一次Accept的感觉好爽
代码:
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
思路:
每次转着圈挪四个元素,这步只需要一个int的额外空间,想象一个方阵
哦不好意思,这个太不专业了,咱换个大一点6×6的
草图上比划比划第二层的元素怎么移动,一次Accept的感觉好爽
代码:
void rotate(vector<vector<int> > &matrix) { int n = matrix.size(); if(n < 2) return; for(int layer = 0; layer < n/2; layer++){ for(int i = layer; i < n-1-layer; i++){//避免重复处理n-1-layer int leftTop = matrix[layer][i];//注意二维矩阵的(i,j)index与数学坐标(x,y)中是相反的 matrix[layer][i] = matrix[n-1-i][layer]; //先在纸上想清楚赋值的先后循序 matrix[n-1-i][layer] = matrix[n-1-layer][n-1-i]; matrix[n-1-layer][n-1-i] = matrix[i][n-1-layer]; matrix[i][n-1-layer] = leftTop; } } }
相关文章推荐
- 【题解】【矩阵】【回溯】【Leetcode】Unique Paths II
- 【leetcode题解】【回溯】【54】【M】Subsets II
- 剑指offer 面试题20:顺时针打印矩阵及其变形(LeetCode54. Spiral Matrix旋转矩阵) 题解
- 【VIP】【leetcode题解】【回溯】【97.5】【M】Subsets
- 将矩阵顺时针旋转90度 leetCode:Rotate Image
- 【题解】【排列组合】【回溯】【Leetcode】Gray Code
- 【题解】【矩阵】【DP】【Leetcode】Minimum Path Sum
- 剑指offer 面试题3:二维数组(矩阵)中数的查找(leetcode 74. Search a 2D Matrix) 题解
- 【回溯】【leetcode题解】【M】【57】Combination Sum
- 【题解】【排列组合】【回溯】【Leetcode】Generate Parentheses
- LeetCode题解:Permutations I and II
- leetcode题解-354. Russian Doll Envelopes
- LeetCode题解系列--4. Median of Two Sorted Arrays
- LeetCode题解 第五周
- LeetCode题解----Number of 1 Bits
- LeetCode题解:Partition List
- 【Leetcode】Rotate Image
- LeetCode题解-101-Symmetric Tree
- LeetCode题解:Binary Tree Postorder Traversal
- 8. String to Integer (atoi) LeetCode题解