这道题如果普通手段,其实就是通过另外一个数组来实现,但是如果要原地完成就比较难想到了。其实可以通过三次翻转法,也就是先对整个数组翻转,然后翻转前 k 个,再翻转后 n-k 个,这样就能达到右移的效果。func rotate(nums []int, k int) { n := len(nums) for i, j := 0, n-1; i < j; i, j = i+1...
这道题如果普通手段,其实就是通过另外一个数组来实现,但是如果要原地完成就比较难想到了。其实可以通过三次翻转法,也就是先对整个数组翻转,然后翻转前 k 个,再翻转后 n-k 个,这样就能达到右移的效果。func rotate(nums []int, k int) { n := len(nums) for i, j := 0, n-1; i < j; i, j = i+1...