分类:数组-数组的旋转
题目描述:给定一个数组,将数组中的元素向右移动 k
个位置,其中 k
是非负数。
解题思路:
- 首先对整个数组实行翻转,这样子原数组中需要翻转的子数组,就会跑到数组最前面。
- 这时候,从 kk 处分隔数组,左右两数组,各自进行翻转即可。
class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ nums.reverse() k %= len(nums) nums[:k]=list(reversed(nums[:k])) nums[k:]=list(reversed(nums[k:]))