LC-48:旋转图像

                        
                        


我的实现思路:
最简单的就是对这个n*n的二维数组进行先水平翻转,在进行根据主对角线进行反转。
原始的:
1    2    3                        7    8    9                     7    4    1
4    5    6    =======     4    5    6   =======    8    5    2
7    8    9                        1    2    3                     3    6    9
值的说的是,对于主对角线进行反转的时候。对于行来说应该是全部,对于列还说应该是根据行的编号来确定,不需要对列进行全部的遍历。

我的实现代码:
class Solution {
    public void rotate(int[][] matrix) {
        // 1、先是水平翻转
        for (int i = 0,j = matrix.length - 1; i < matrix.length / 2; i++, j--) {
            for (int k = 0; k < matrix[0].length; k++) {
                int temp = matrix[i][k];
                matrix[i][k] = matrix[j][k];
                matrix[j][k] = temp;
            }
        }
        // 2、再是根据主对角线翻转
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < i; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
    }
}

全部评论

相关推荐

12-03 18:53
海南大学 Java
华为 Java开发 25K*16
点赞 评论 收藏
分享
vegetable_more_exercise:1-1.5万,没错啊,最少是1人民币,在区间内
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务