题目
python代码
1 颠倒列表法
def rotate(nums, k):
if len(nums) < 2:
return
nums.reverse()
k = k % len(nums) #避免k大于nums的长度
while k > 0:
temp = nums.pop(0)
nums.append(temp)
k -= 1
nums.reverse()
return
2 逐个移动元素
超出时间限制
def rotate(nums, k):
if len(nums) < 2:
return
k = k % len(nums)
while k > 0:
temp = nums[-1]
nums[1:] = nums[:-1]
nums[0] = temp
k -= 1
return
3 整体移动元素块
def rotate(nums, k):
if len(nums) < 2:
return
k = k % len(nums)
temp = nums[:len(nums) - k] # 1, 2, 3, 4
nums[:k] = nums[len(nums) - k:]
nums[k:] = temp
return