LeetCode 105 Rotate Image
2014-10-30 09:20
274 查看
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?
分析:
维持一个layer变量记录当期层,对于每一层,
四条边上相同位置元素循环赋值,这样只要维持一个临时变量即可。
public class Solution {
public void rotate(int[][] matrix) {
if(matrix == null || matrix.length <=1)
return;
int n = matrix.length;
//一层一层旋转
for(int layer=0; layer<n/2; layer++){
for(int i=layer; i<n-layer-1; i++){
//四条边上同一位置元素循环赋值
int temp = matrix[i][layer];
matrix[i][layer] = matrix[n-layer-1][i];
matrix[n-layer-1][i] = matrix[n-i-1][n-layer-1];
matrix[n-i-1][n-layer-1] = matrix[layer][n-i-1];
matrix[layer][n-i-1] = temp;
}
}
}
}
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
分析:
维持一个layer变量记录当期层,对于每一层,
四条边上相同位置元素循环赋值,这样只要维持一个临时变量即可。
public class Solution {
public void rotate(int[][] matrix) {
if(matrix == null || matrix.length <=1)
return;
int n = matrix.length;
//一层一层旋转
for(int layer=0; layer<n/2; layer++){
for(int i=layer; i<n-layer-1; i++){
//四条边上同一位置元素循环赋值
int temp = matrix[i][layer];
matrix[i][layer] = matrix[n-layer-1][i];
matrix[n-layer-1][i] = matrix[n-i-1][n-layer-1];
matrix[n-i-1][n-layer-1] = matrix[layer][n-i-1];
matrix[layer][n-i-1] = temp;
}
}
}
}
相关文章推荐
- Leetcode Rotate Image
- [leetcode] Rotate Image
- [Leetcode] Rotate Image
- Leetcode:48. Rotate Image
- Leetcode: 48.Rotate Image(Week4, Medium)
- [LeetCode]--48. Rotate Image
- Leetcode 48. Rotate Image
- leetCode 48.Rotate Image (旋转图像) 解题思路和方法
- leetcode——Rotate Image
- [LeetCode] Rotate Image
- LeetCode:Rotate Image
- Leetcode: Rotate Image
- leetcode:Rotate Image (旋转矩阵)【面试算法题】
- 48. Rotate Image ---leetcode算法笔记
- [LeetCode] Rotate Image
- Leetcode: Rotate Image
- leetcode之Rotate Image
- [leetcode] Rotate Image
- Leetcode解题报告:48. Rotate Image
- [LeetCode] 091: Rotate Image