Python 两行解决(未超时)
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
for i in range(k):
nums.insert(0,nums.pop())
这种写法虽然简单,但效率不高。因为若 k 很大时,每次都需要执行 删除-插入 这两个操作,引入模运算可以应对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)
nums[:]=nums[::-1]
nums[:k]=nums[:k][::-1]
nums[k:]=nums[k:][::-1]
注意地址的改变!
①nums=nums[::-1],会改变nums的地址;nums[:]=nums[::-1],不会改变nums的地址
②数组翻转的代码 nums[:k]=nums[:k][::-1];nums[k:]=nums[k:][::-1]