首页 > 其他 > 详细

48. 旋转图像 - LeetCode

时间:2021-03-05 14:28:33      阅读:19      评论:0      收藏:0      [点我收藏+]

48. 旋转图像

分组旋转

  • 对比旋转前后的矩阵,marix[i][j]被替换为matrix[n-j-1][i],对于matrix[n-j-1][i]也是同样的操作
  • 最终得出,四个数字为一组,顺时针旋转
  • 按照这个规律,除了中间数字外,其他每组都旋转一次即可
class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        for(int i = 0; i < n / 2; i++)
            for(int j = 0; j < (n + 1) / 2; j++){
                int temp = matrix[i][j];
                matrix[i][j] = matrix[n-j-1][i];
                matrix[n-j-1][i] = matrix[n-i-1][n-j-1];
                matrix[n-i-1][n-j-1] = matrix[j][n-i-1];
                matrix[j][n-i-1] = temp;
            }
    }
}

先翻转后转置

  • 顺时针旋转90度,相当于先水平翻转,然后再转置
class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        for(int i = 0; i < n / 2; i++)
            for(int j = 0; j < n; j++){
                int temp = matrix[i][j];
                matrix[i][j] = matrix[n-i-1][j];
                matrix[n-i-1][j] = temp;
            }
        for(int i = 0; i < n; i++)
            for(int j = 0; j < i; j++){
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
    }
}

48. 旋转图像 - LeetCode

原文:https://www.cnblogs.com/xiafrog/p/14485564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!