189. 旋转数组
题目
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
1 | 示例 1: |
说明:
尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。
要求使用空间复杂度为 O(1) 的原地算法。
方法
方法1:采用额外的数组
采用额外的数组存放位置准确的元素。在原始数组nums[i]应该放置于新数组的索引为$i+k$中,为避免k比len(nums)大,应该采用$(i+k)%len(nums)%
1 | class Solution(object): |
方法2:in-place
1 | class Solution(object): |
1 | class Solution(object): |