跳转至

LC48 - 旋转图像

RotateImage.go
package Matrix

func rotate(matrix [][]int) {
    n := len(matrix)
    downHalf, upHalf := n/2, (n+1)/2
    for i := 0; i < downHalf; i++ {
        for j := 0; j < upHalf; j++ {
            temp := 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] = temp
        }
    }
}

注意两点: 1. 坐标变换 2. 矩阵分块