添加鏈接描述
class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""# 思路:三次數組翻轉n=len(nums)k=k%nnums[:] = nums[-k:] + nums[:-k]
思路就是:
- 事實上就是數組的三次翻轉
- 這里
nums[-k:]
的意思是從倒數第k個元素到末位 nums[:-k]
的意思是從首位到-k個元素(不包含第-k個元素)- 而
nums[:]
是為了在原表上操作,如果是nums=…就不是在原表上操作 - 如果使用nums = nums[-k:] + nums[:-k]:就是創建了一個新的nums,并改變原nums的引用(你后面的nums會覆蓋原來的nums,通過id(nums)可以看出來)
這里再寫幾種python中翻轉的操作
1. reverse()
這個函數會對原列表進行操作,并且只對列表操作
2. reversed()
這個函數不會對原列表操作,并且可以對除了列表之外還有元組,字符串等
3. 切片操作
list[start : end][ : : -1]對列表進行操作,但跟ed一樣,不會對原列表進行操作