题目:
给定一个整数数组 nums
,将数组中的元素向右轮转 k
个位置,其中 k
是非负数。
要求:只能在原数组上修改,不能新创一个数组和开辟新的空间。
示例 1:
输入: nums = [1,2,3,4,5,6,7], k = 3 输出:[5,6,7,1,2,3,4]
解释: 向右轮转 1 步:[7,1,2,3,4,5,6]
向右轮转 2 步:[6,7,1,2,3,4,5]
向右轮转 3 步:[5,6,7,1,2,3,4]
代码:
class Solution:
def rotate(self, nums, k):
"""
Do not return anything, modify nums in-place instead.
"""
k%=len(nums)#保证k不超过数组的长度
a=len(nums[len(nums)-k:])#取要轮转的数组长度
nums[:a],nums[a:]=nums[len(nums)-k:],nums[:len(nums)-k]#切片原理赋值
return nums