[LeetCode]48. 旋转图像(java实现)
1. 题目
2. 读题(需要重点注意的东西)
思路:
先沿对角线翻转,再沿中轴线翻转,就得到了一个翻转90°的图形。
3. 解法
---------------------------------------------------解法---------------------------------------------------:
class Solution {
public void swap(int[][] matrix,int x1,int y1,int x2,int y2){
int temp = matrix[x1][y1];
matrix[x1][y1] = matrix[x2][y2];
matrix[x2][y2] = temp;
}
public void rotate(int[][] matrix) {
int n = matrix.length;
// 按斜对角线翻转
for(int i = 0;i < n;i++)
for(int j = 0;j< i;j++)
swap(matrix,i,j,j,i);
// 按中轴线翻转
for(int i = 0;i < n;i++)
for(int j = 0,k = n - 1;j < k;j++,k--)
swap(matrix,i,j,i,k);
}
}
可能存在的问题:
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
6. 总结
掌握按对角线翻转和按中轴线翻转的技巧。