| 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)
 
- } */
 
 
  |