| 123456789101112131415161718192021222324252627282930313233343536 | package main/** * '1' 2 '3'  swap   '7' 2 '1'  next   7 '2' 1 *  4  5  6  ----->   4  5  6  -----> '4' 5 '6' -> ... * '7' 8 '9'         '9' 8 '3'         9 '8' 3 */func rotate(matrix [][]int) {	side := len(matrix) - 1	for i := 0; i <= side/2; i++ {		for j := 0; j < side-2*i; j++ {			matrix[i][i+j], matrix[i+j][side-i], matrix[side-i][side-i-j], matrix[side-i-j][i] = matrix[side-i-j][i], matrix[i][i+j], matrix[i+j][side-i], matrix[side-i][side-i-j]		}	}}/* func main() {	m1 := [][]int{		{11, 22, 33, 44, 55},		{16, 27, 38, 49, 50},		{11, 23, 35, 47, 59},		{12, 24, 36, 48, 50},		{15, 24, 33, 42, 51},	}	rotate(m1)	fmt.Println(m1)	m2 := [][]int{		{1, 2},		{3, 4},	}	rotate(m2)	fmt.Println(m2)	m3 := [][]int{}	rotate(m3)	fmt.Println(m3)} */
 |