mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
25 lines
492 B
Go
25 lines
492 B
Go
package leetcode
|
|
|
|
// 解法一 时间复杂度 O(n),空间复杂度 O(1)
|
|
func rotate(nums []int, k int) {
|
|
k %= len(nums)
|
|
reverse(nums)
|
|
reverse(nums[:k])
|
|
reverse(nums[k:])
|
|
}
|
|
|
|
func reverse(a []int) {
|
|
for i, n := 0, len(a); i < n/2; i++ {
|
|
a[i], a[n-1-i] = a[n-1-i], a[i]
|
|
}
|
|
}
|
|
|
|
// 解法二 时间复杂度 O(n),空间复杂度 O(n)
|
|
func rotate1(nums []int, k int) {
|
|
newNums := make([]int, len(nums))
|
|
for i, v := range nums {
|
|
newNums[(i+k)%len(nums)] = v
|
|
}
|
|
copy(nums, newNums)
|
|
}
|