每日leetcode-数组-189. 旋转数组

分类:数组-数组的旋转

 

题目描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

解题思路:

  1. 首先对整个数组实行翻转,这样子原数组中需要翻转的子数组,就会跑到数组最前面。
  2. 这时候,从 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:]))

 

上一篇:189 旋转数组


下一篇:LeetCode 189. 旋转数组 C语言解