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-02 17:22
已编辑
西安交通大学 Java
华为 昇腾 ai软件开发 薪资20k x (14-16),职级13A,5%公积金,c/cpp
BLOOMING7:闭眼滴滴,华子给的又少又累
点赞 评论 收藏
分享
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务