day-46 旋转图像

day-46 旋转图像_第1张图片
思路
不能使用辅助数组,所以关键在于弄清楚旋转后坐标的变化规律。当矩阵的大小n为偶数时,以n/2行和n/2列的元素为起点,当矩阵的大小n为奇数时,以n/2行和(n+1)/2列的元素为起点

解题过程
关键:旋转过程中互相交换的四个元素的坐标为:1.matrix[i][j] 2. matrix[n - 1 - j][i] 3.matrix[n - 1 - i][n - 1 - j] 4.matrix[j][n - 1 - i]

Code

class Solution {
    public void rotate(int[][] matrix) {
        int n=matrix.length;
            int row=n/2;
            int col=(n+1)/2;
            for(int i=0;i<row;i++){
                for(int j=0;j<col;j++){
                    int t=matrix[i][j];
                    matrix[i][j] = matrix[n - 1 - j][i];
                    matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j];
                    matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i];
                    matrix[j][n - 1 - i] = t;
                }
            }
    }
}

作者:菜卷
链接:https://leetcode.cn/problems/rotate-image/solutions/2900533/xuan-zhuan-tu-xiang-by-ashi-jian-chong-d-4nud/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(算法)