31 lines
636 B
Go
31 lines
636 B
Go
package top100liked
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
// https://leetcode.cn/problems/rotate-image/?envType=study-plan-v2&envId=top-100-liked
|
|
|
|
func rotate(matrix [][]int) {
|
|
n := len(matrix)
|
|
for i := range (n-1)/2 + 1 {
|
|
for j := i; j < max(j, n-i-1); j++ {
|
|
tmp := matrix[i][j]
|
|
for range 4 {
|
|
matrix[j][n-i-1], tmp = tmp, matrix[j][n-i-1]
|
|
i, j = j, n-i-1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestS20(t *testing.T) {
|
|
matrix := [][]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
|
|
rotate(matrix)
|
|
fmt.Printf("%+v\n", matrix)
|
|
matrix = [][]int{{5, 1, 9, 11}, {2, 4, 8, 10}, {13, 3, 6, 7}, {15, 14, 12, 16}}
|
|
rotate(matrix)
|
|
fmt.Printf("%+v\n", matrix)
|
|
}
|