轮转数组

题目

189. 轮转数组

解题思路

很明显是三次翻转,注意这里的k需要先处理成小于数组大小的数

复杂度

时间复杂度:O(n),相当于翻转数组两次

Code

func rotate(nums []int, k int) {
	if k == 0 {
		return
	}
	k = k % len(nums)
	reverse(nums)
	reverse(nums[:k])
	reverse(nums[k:])
}

func reverse(nums []int) {
	var i, j = 0, len(nums) - 1
	for i < j {
		nums[i], nums[j] = nums[j], nums[i]
		i++
		j--
	}
}
请用钱砸死我!!!