021_旋转图像

知识点:线性代数题

LeetCode第四十八题:https://leetcode-cn.com/problems/rotate-image/submissions/

语言:GoLang

// 线性代数题
func rotate(matrix [][]int) {
    length := len(matrix)

    for i := 0; i < length / 2; i++ {
        helper(matrix, i, length - i * 2)
    }
}

func helper(matrix [][]int, x int, n int) {

    tmp := make([]int, n)
    for i := 0; i < n; i++ {
        tmp[i] = matrix[x][x + i]
    }

    for i := n - 1; i >= 0; i-- {
        matrix[x][x + i] = matrix[x + n - 1 - i][x]
    }

    for i := 0; i < n; i++ {
        matrix[x + i][x] = matrix[x + n - 1][x + i]
    }

    for i := 0; i < n; i++ {
        matrix[x + n - 1][x + i] = matrix[x + n - 1 - i][x + n - 1]
    }
    matrix[x + n - 1][x + n - 1] = tmp[n - 1]

    for i := n - 1; i >= 0; i-- {
        matrix[x + i][x + n - 1] = tmp[i]
    }
}
posted @ 2020-03-15 11:43  Cenyol  阅读(62)  评论(0)    收藏  举报