其他分享
首页 > 其他分享> > 原地翻转或旋转矩阵

原地翻转或旋转矩阵

作者:互联网

idx, halfLen := len(matrix)-1, len(matrix) / 2 // 记录最后一个元素的下标和边长的一半

// 按对角线反转矩阵
for i := range matrix {
    for j := 0; j < i; j++ {
        matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
    }
}

// 按竖中轴线反转矩阵
for i := range matrix {
    for j := 0; j < halfLen; j++ {
        matrix[i][j], matrix[i][idx-j] = matrix[i][idx-j], matrix[i][j]
    }
}

// 按横中轴线反转矩阵
for i := 0; i < helfLen; i++ {
    for j := range matrix[i] {
        matrix[idx-i][j], matrix[i][j] = matrix[i][j], matrix[idx-i][j]
    }
}

  

顺时针旋转90:先沿对角线反转矩阵,再沿竖中轴线反转矩阵;
顺时针旋转180:先沿横中轴线反转矩阵,再沿竖中轴线反转矩阵;
顺时针旋转270:先沿对角线反转矩阵,再沿横中轴线反转矩阵;

 

作者:cheless-w
链接:https://leetcode.cn/problems/rotate-image/solution/xuan-zhuan-90180270-by-cheless-w-5b8m/
来源:力扣(LeetCode)

标签:中轴线,matrix,idx,先沿,反转,矩阵,原地,翻转
来源: https://www.cnblogs.com/mango1997/p/16467180.html