题目:

思路:

三次反转的方法,可以直接在原来的数组上进行修改
第一次:反转整个数组

第二次:反转前k个数

第三次:反转后n-k个数

代码:

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        k = k%len(nums) #若一共有9个数,那么移动1位和移动10位是一样的
        def reverse(left,right):
            while left<right:
                nums[left], nums[right] = nums[right], nums[left]
                left+=1
                right-=1
        reverse(0,len(nums)-1)
        reverse(0,k-1)
        reverse(k,len(nums)-1)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐