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