File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 47
47
另外,如果是 ** 向左轮转** ,则是先反转整个数组,再各自反转 ` [0, n - 1 - (k mod n)] ` 和 ` [n - (k mod n), n - 1] ` 。
48
48
49
49
``` Java
50
+ // Java
50
51
class Solution {
51
52
public void rotate (int [] nums , int k ) {
52
53
int n = nums. length;
@@ -66,4 +67,36 @@ class Solution {
66
67
}
67
68
}
68
69
}
70
+ ```
71
+
72
+ ``` go
73
+ // Go
74
+ func rotate (nums []int , k int ) {
75
+ n := len (nums)
76
+ reverse (nums, 0 , n - 1 - k)
77
+ reverse (nums, n - k, n - 1 )
78
+ reverse (nums, 0 , n - 1 )
79
+ }
80
+
81
+ func reverse (nums []int , left , right int ) {
82
+ for ;left < right; {
83
+ nums[left], nums[right] = nums[right], nums[left]
84
+ left++
85
+ right--
86
+ }
87
+ }
88
+ ```
89
+
90
+ 方法二:额外数组
91
+
92
+ ``` go
93
+ func rotate (nums []int , k int ) {
94
+ n := len (nums)
95
+ arr := make ([]int , n)
96
+ k = k % n
97
+ for index := range nums {
98
+ arr[index] = nums[(n - k + index) % n]
99
+ }
100
+ copy (nums, arr)
101
+ }
69
102
```
You can’t perform that action at this time.
0 commit comments